통계의 정확성을 개선할 수 있는 두가지 매커니즘.
대규모 테이블의 경우 정확한 통계가 쿼리옵티마이저에게 매우 중요하다.
정확한 통계는 쿼리옵티마이저가 올바른 카디널리티로 가장 선별된 인덱스를 사용하도록 지원하므로 쿼리 성능이 향상된다.
기본적으로 10%이상의 로우 변경이 발생해야 갱신되는데 매우 큰 테이블의경우 자주발생하지 않아
통계의 정확도가 감소할 수 있다.
정보스키마를 사용하며 관련테이블에 대한 테이블 및 인덱스통계의 경과시간을 모니터링한 후
analyze table 실행.
Auroal MySQL의 경우 임의 인덱스 페이지 샘플링 개수는 20개이다.
하지만 매우 큰 테이블이나 균일하지않은 컬럼이 포함되는 테이블인 경우 20개는 충분하지 않을 수 있다.
샘플링되는 페이지수를 늘리면 정확도가 증가함(증가시킬수록 통계를 계산하는데 걸리는 시간도 늘어남)
innodb_stat_persistent_sample_pages 256
-> 통계가 디스크에 유지되는경우 샘플링된 페이지에대한 글로벌 파라미터(테이블별로 구성가능)
innodb_stat_transient_sample_pages 256
-> 위와 비슷하지만 통계가 디스크에 유지되지 않는 경우 사용되는 글로벌파라미터