• 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 서버관리
  • 1. MySQL Server
    2. MySQL Server 로그
    3. 하나의 시스템에서 여러 MySQL 인스턴스 실행
    4. DTrace를 사용하여 mysqld 추적
    1. mysqld DTrace 프로브 설명
    1. 연결 프로브
    2. 명령 프로브
    3. 쿼리 프로브
    4. 쿼리 분석 프로브
    5. 쿼리 캐시 프로브
    6. 쿼리 실행 프로브
    7. 행 레벨 프로브
    8. 행 읽기 프로브
    9. 인덱스 프로브
    10. 잠금 프로브
    11. 파일 정렬 프로브
    12. 명령문 프로브
    13. 네트워크 프로브
    14. Keycache 프로브
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. 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 새로운 기능

5.4.1.5 쿼리 캐시 프로브

쿼리 캐시 프로브는 하나의 쿼리를 실행할 때 시작합니다. query-cache-hit 쿼리는 쿼리가 쿼리 캐시에 존재할 때 트리거됩니다 쿼리 캐시 정보를 반환하는 데 사용할 수 있습니다. 인수는 원래 쿼리 텍스트 및 쿼리에 대해 쿼리 캐시에서 반환되는 행 수가 포함됩니다. 쿼리가 쿼리 캐시에 존재하지 않거나 쿼리 캐시가 사용 가능하지 않은 경우, query-cache-miss 프로브가 대신 트리거됩니다.

  query-cache-hit (query, rows)
 query-cache-miss (query) 
  • query-cache-hit : 쿼리가 쿼리 캐시에 발견 될 때 트리거됩니다. 첫 번째 인수 query 는 쿼리의 원래 텍스트가 포함됩니다. 두 번째 인수 rows 는 캐시 된 쿼리의 행 수를 포함하는 정수입니다.

  • query-cache-miss : 쿼리가 쿼리 캐시에 발견되지 않았던 때 트리거됩니다. 첫 번째 인수 query 는 쿼리의 원래 텍스트가 포함됩니다.

쿼리 캐시 프로브를 메인 쿼리의 프로브와 최적으로 결합하여 지정된 쿼리에 대해 쿼리 캐시를 사용했을 때와 사용하지 않을 때의 시간 차이를 확인할 수 있습니다. 예를 들어, 다음의 D 스크립트에서는 쿼리 및 쿼리 캐시 정보를 결합하여 모니터 중에 출력되는 정보입니다.

  #! / usr / sbin / dtrace -s

 #pragma D option quiet

 dtrace ::: BEGIN
 {
    printf ( "% - 20s % -20s % -40s % 2s % -9s \ n", "Who", "Database", "Query", "QC", "Time (ms)");
 }

 mysql * ::: query-start
 {
    self-> query = copyinstr (arg0);
    self-> connid = arg1;
    self-> db = copyinstr (arg2);
    self-> who = strjoin (copyinstr (arg3) strjoin ( "@", copyinstr (arg4)));
    self-> querystart = timestamp;
    self-> qc = 0;
 }

 mysql * ::: query-cache-hit
 {
    self-> qc = 1;
 }

 mysql * ::: query-cache-miss
 {
    self-> qc = 0;
 }

 mysql * ::: query-done
 {
    printf ( "% - 20s % -20s % -40s % -2s % -9d \ n", self-> who, self-> db, self-> query (self-> qc? "Y": "N" ),
           (timestamp - self-> querystart) / 1000000);
 } 

스크립트를 실행하면 쿼리 캐시의 영향을 이해할 수 있습니다. 처음에는 쿼리 캐시는 비활성화되어 있습니다. 쿼리 캐시 크기를 설정하고 쿼리를 여러 번 실행하면 쿼리 데이터를 반환하는 쿼리 캐시가 사용되었는지가 나타날 것입니다.

  shell> ./query-cache.d
 root @ localhost test select * from t1 order by i limit 10 N 1072
 root @ localhost set global query_cache_size = 262144 N 0
 root @ localhost test select * from t1 order by i limit 10 N 781
 root @ localhost test select * from t1 order by i limit 10 Y 0 


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