통계의 정확성을 개선할 수 있는 두가지 매커니즘.

 

대규모 테이블의 경우 정확한 통계가 쿼리옵티마이저에게 매우 중요하다. 

정확한 통계는 쿼리옵티마이저가 올바른 카디널리티로 가장 선별된 인덱스를 사용하도록 지원하므로 쿼리 성능이 향상된다. 

 

기본적으로 10%이상의 로우 변경이 발생해야 갱신되는데 매우 큰 테이블의경우 자주발생하지 않아

통계의 정확도가 감소할 수 있다.

   

정보스키마를 사용하며 관련테이블에 대한 테이블 및 인덱스통계의 경과시간을 모니터링한 후

 analyze table 실행.

 

Auroal MySQL의 경우 임의 인덱스 페이지 샘플링 개수는 20개이다. 

하지만 매우 큰 테이블이나 균일하지않은 컬럼이 포함되는 테이블인 경우 20개는 충분하지 않을 수 있다. 

샘플링되는 페이지수를 늘리면 정확도가 증가함(증가시킬수록 통계를 계산하는데 걸리는 시간도 늘어남)

 

innodb_stat_persistent_sample_pages 256

-> 통계가 디스크에 유지되는경우 샘플링된 페이지에대한 글로벌 파라미터(테이블별로 구성가능)

 

innodb_stat_transient_sample_pages  256

-> 위와 비슷하지만 통계가 디스크에 유지되지 않는 경우 사용되는 글로벌파라미터

 

 

SMALL

+ Recent posts