• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    1. InnoDB 버퍼 풀 구성
    2. InnoDB 상호 배타적 잠금 및 읽기 / 쓰기 잠금 구현
    3. InnoDB를위한 메모리 할당 구성
    4. InnoDB 변경 버퍼링 구성
    5. InnoDB의 스레드 병렬성 구성
    6. InnoDB 백그라운드 I/O 스레드 수 구성
    7. 그룹 커밋
    8. InnoDB 마스터 스레드의 I/O 속도의 구성
    9. InnoDB 스핀 루프에서 PAUSE 명령 사용
    10. 스핀 록 폴링 구성
    11. InnoDB의 MySQL 성능 스키마와 통합
    12. 다중 롤백 세그먼트에 의한 확장성 향상
    13. InnoDB 퍼지 스케줄링 구성
    14. InnoDB의 읽기 전용 트랜잭션 최적화
    15. 체크섬의 고속화를위한 CRC32 체크섬 알고리즘의 사용
    16. 옵티 마이저 통계
    1. 영속적 옵티마이저 통계 파라미터 구성
    2. 비영구적 옵티마이저 통계 파라미터 구성
    17. InnoDB 테이블에 ANALYZE TABLE의 복잡성 추정
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. InnoDB 문제 해결
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

14.13.16.2 비영구적 옵티마이저 통계 파라미터 구성

MySQL 5.6.6의 시점에서는 옵티 마이저 통계는 기본적으로 영구적이며, innodb_stats_persistent 구성 옵션으로 사용할 수 있습니다. 이 섹션에서는 innodb_stats_persistent=OFF 일 때, 또는 STATS_PERSISTENT=0 에서 개별 테이블을 만들거나 변경 될 때 적용되는 비 영구 옵티 마이저 통계의 구성에 대해 설명합니다. 영구 옵티 마이저 통계 정보는 섹션 14.13.16.1 "영구 옵티 마이저 통계 매개 변수 구성" 을 참조하십시오.

MySQL 쿼리 최적화 프로그램은 인덱스의 상대적인 선택성 에 따라 키 분포에 대한 추정 된 통계 를 사용하여 실행 계획을위한 인덱스를 선택합니다. 특정 작업을 수행하면, InnoDB 는 인덱스의 중요도 를 추정하기 위해 테이블의 각 인덱스에서 임의의 페이지를 샘플링합니다. (이 기술은 랜덤 다이브 라고합니다.) 이러한 작업은 ANALYZE TABLE 문 SHOW TABLE STATUS 문 및 재시작 후 테이블에 처음 액세스가 포함됩니다.

통계 추정치의 품질을 제어하는 (그러면 쿼리 최적화에 대한 정보를 개선하기) 위해 매개 변수 innodb_stats_transient_sample_pages 를 사용하여 추출 된 페이지 수를 변경할 수 있습니다. 샘플링되는 페이지의 기본 수는 8입니다. 이것은 정확한 추정치를 생성하기에 충분하지 않고, 쿼리 최적화 프로그램이 잘못된 인덱스 선택으로 이어질 수 있습니다. 이 기술은 큰 테이블과 조인 에서 사용되는 테이블의 경우에 특히 중요합니다. 이러한 테이블에 대한 불필요한 풀 테이블 스캔 이 성능의 심각한 문제가 될 수 있습니다. 이러한 쿼리 튜닝에 대한 팁은 섹션 8.2.1.20 "풀 테이블 스캔을 방지하는 방법" 을 참조하십시오.

글로벌 매개 변수 innodb_stats_transient_sample_pages 은 런타임에 설정할 수 있습니다.

참고

innodb_stats_persistent=0 인 경우는 innodb_stats_transient_sample_pages 값이 모든 InnoDB 테이블 및 인덱스의 인덱스 샘플링에 영향을 미칩니다. 인덱스의 샘플 크기를 변경하면 다음 잠재적으로 심각한 영향이 발생합니다.

  • 1이나 2 등 작은 값은 중요도의 부정확 한 추정치가 생성 될 수 있습니다.

  • innodb_stats_transient_sample_pages 값을 크게하면 필요한 디스크 읽기가 늘어날 수 있습니다. 8보다 훨씬 큰 값 (예 : 100)에서는 테이블을 열거 나 SHOW TABLE STATUS 를 실행하는 데 속도가 크게 느려질 수 있습니다.

  • 최적화 프로그램이 인덱스의 선택성 다른 추정치에 따라 매우 다른 쿼리 계획을 선택할 수 있습니다.

SHOW TABLE STATUS 와 SHOW INDEX 와 같은 메타 데이터 문을 실행할 때와 INFORMATION_SCHEMA.TABLES 또는 INFORMATION_SCHEMA.STATISTICS 테이블에 액세스 할 때 통계가 업데이트되도록하려면 문 SET GLOBAL innodb_stats_on_metadata=ON (또는 0 )를 실행합니다.

참고

영구 옵티 마이저 통계가 MySQL 5.6.6에서 기본적으로 활성화되었을 때, innodb_stats_on_metadata 의 기본 설정은 OFF 로 변경되었습니다. 이 변수를 사용하면 다수의 테이블 또는 인덱스를 포함하는 스키마 액세스 속도가 저하되거나 InnoDB 테이블에 대한 쿼리 실행 계획의 안정성이 저하 될 수 있습니다.

--auto-rehash 설정이 온 (디폴트) 상태에서 mysql 클라이언트가 시작되면 모든 InnoDB 테이블이 열리고 관련된 모든 인덱스에 대한 통계를 다시 추정됩니다. mysql 클라이언트의 시작 시간을 개선하기 위해 --disable-auto-rehash 옵션을 사용하여 auto-rehash를 취소 할 수 있습니다. auto-rehash 기능은 대화 형 사용자에 대한 데이터베이스 테이블 및 컬럼 이름의 자동 이름 보완을 활성화합니다.

있는 시스템에서 innodb_stats_transient_sample_pages 의 어떤 값이 가장 잘 작동하더라도이 옵션을 설정하고 그 값을 유지합니다. 과도한 I / O를 필요로하지 않고 데이터베이스의 모든 테이블에 대해 비교적 정확한 견적을 생성하는 값을 선택하십시오. 통계는 ANALYZE TABLE 을 실행할 때 이외의 다양한 시간에 자동으로 다시 계산되므로 인덱스의 샘플 크기를 늘리고, ANALYZE TABLE 을 실행하고 샘플 크기를 다시 줄여도 의미가 없습니다. innodb_stats_transient_sample_pages 큰 값으로 실행되는 ANALYZE 에 의해 계산 된보다 정확한 통계가 나중에 삭제 될 수 있습니다.

작은 테이블은 일반적으로 큰 테이블에 비해 필요한 인덱스 샘플이 적습니다. 데이터베이스에 다수의 큰 테이블이 포함되어있는 경우는 대부분이 작은 테이블 인 경우보다 큰 innodb_stats_transient_sample_pages 값을 사용하는 것을 고려하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved