MySQL/Reference
Server SQL Modes
The MySQL server can operate in different SQL modes, and can apply these modes differently for different clients, depending on the value of the sql_mode system variable. DBAs can set the global SQL mode to match site server operating requirements, and each application can set its session SQL mode to its own requirements. Modes affect the SQL syntax MySQL supports and the data validation checks i..
통계정보(2) - Type편
이어서 계속합시다. type MySQL 서버가 각 테이블의 레코드를 어떤 방식으로 읽었는지를 나타냅니다. 대표적인 방식으로는 인덱스를 사용해서 레코드를 읽는 방법과, 테이블 처음부터 끝까지 읽는 Full Table Scan 방식이 있습니다. 쿼리를 튜닝할 때 필수적으로 체크해야 하는 정보입니다. 대분류 소분류 설명 인덱스를 사용해 스캔 system 단 하나의 레코드를 가지는 테이블을 참조하는 형태의 접근 방법 const 쿼리가 PK나 UK를 이용하는 WHERE 조건절을 가지고 있으며, 반드시 1건을 반환 eq_ref 조인에서 첫 번째 읽은 테이블의 컬럼값을 이용해 두 번째 테이블을 PK나 UK로 동등조건 검색 (두번째 테이블은 반드시 1건의 레코드만 반환) ref 조인의 순서나 인덱스 종류에 상관없이 동..
통계정보(1)
1) 최신화(ANALYZE) MySQL의 버전업이 되며, 동적으로 통계정보들을 업데이트 하나 레코드의 수가 많지 않으면 정보 최신화를 자주 하지 않습니다. 그렇기 때문에, 개발용 MySQL 서버는 레코드 건수가 얼마 되지 않기 때문에, 통계 정보가 상당히 부정확한 경우가 많습니다. 이를 방지하기 위해서, 통계정보를 강제적으로 업데이트를 해 주어야 하는데 이를 'ANALYZE' 명령을 통해 수행합니다. 참고로 이 명령은 인덱스 키값의 분포도만 업데이트하고, 전체 테이블의 건수는 테이블의 전체 페이지 수를 이용해 예측합니다. 이 작업에서 InnoDB와 MyISAM의 차이가 나오는데, InnoDB는 'innodb_stats_sample_pages' 파라미터를 통해 소수의 표본을 추출해서 (8개~24개) 분석 ..