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