• 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. 최적화
  • 1. 최적화 개요
    2. SQL문 최적화
    3. 최적화 및 인덱스
    4. 데이터베이스 구조의 최적화
    5. InnoDB 테이블의 최적화
    6. MyISAM 테이블의 최적화
    7. MEMORY 테이블 최적화
    8. 쿼리 실행 계획의 이해
    9. 버퍼링과 캐시
    1. InnoDB 버퍼 풀
    2. MyISAM 키 캐시
    3. MySQL 쿼리 캐시
    1. 쿼리 캐시 동작
    2. 쿼리 캐시 SELECT 옵션
    3. 쿼리 캐시 구성
    4. 쿼리 캐시의 상태 및 유지 보수
    4. 준비된 문 및 저장 프로그램 캐시
    10. 잠금 작업의 최적화
    11. MySQL 서버의 최적화
    12. 성능 측정
  • 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 새로운 기능

8.9.3.1 쿼리 캐시 동작

이 섹션에서는 쿼리 캐시가 작동 가능한 경우 그 방법에 대해 설명합니다. 섹션 8.9.3.3 "쿼리 캐시 구성" 에서는 그것을 작동 할 수 있는지 여부를 제어하는 방법을 설명하고 있습니다.

받은 쿼리는 분석 전에 쿼리 캐시에있는 그들과 비교되기 때문에 다음 두 쿼리는 쿼리 캐시에 의해 다른 것으로 간주됩니다.

 SELECT * FROM tbl_name Select * from tbl_name 

쿼리는 동일한 것으로 간주되기 위해서는 똑같은 (바이트 단위)이어야합니다. 또한 다른 이유로 동일한 쿼리 문자열이 다른 것으로 간주 될 수 있습니다. 다른 데이터베이스, 서로 다른 프로토콜 버전 또는 다른 기본 문자 집합을 사용하는 쿼리는 다른 쿼리로 간주되며 별도로 캐시됩니다.

다음과 같은 유형의 쿼리는 캐시가 사용되지 않습니다.

  • 외부 쿼리의 하위 쿼리 인 쿼리

  • 스토어드 함수, 트리거 또는 이벤트의 본체 내에서 실행되는 쿼리

쿼리 결과를 쿼리 캐시에서 가져 오기 전에 MySQL은 관련된 모든 데이터베이스와 테이블에 사용자가 SELECT 권한을 가지고 있는지 확인합니다. 이것이 맞지 않는 경우, 캐시 결과는 사용되지 않습니다.

쿼리 결과가 쿼리 캐시에서 반환되는 경우, 서버는 Com_select 아닌 Qcache_hits 상태 변수를 증가시킵니다. 섹션 8.9.3.4 "쿼리 캐시의 상태 및 유지 보수" 를 참조하십시오.

테이블이 변경된 경우 해당 테이블을 사용하는 캐시 된 모든 쿼리가 비활성화 캐시에서 삭제됩니다. 여기에는 변경된 테이블에 매핑 된 MERGE 테이블을 사용하는 쿼리도 포함됩니다. 테이블은 INSERT , UPDATE , DELETE , TRUNCATE TABLE , ALTER TABLE , DROP TABLE 또는 DROP DATABASE 등 많은 종류의 문으로 변경할 수 있습니다.

InnoDB 테이블을 사용할 때 트랜잭션 내에서 쿼리 캐시 기능합니다.

MySQL 5.6는 뷰의 SELECT 쿼리의 결과가 캐시됩니다.

쿼리 캐시는 SELECT SQL_CALC_FOUND_ROWS ... 쿼리에 대해 작동 후속 SELECT FOUND_ROWS() 쿼리에서 반환 된 값을 저장합니다. FOUND_ROWS() 는 이전 쿼리가 캐시에서 가져온 경우에도 발견 된 행의 수를 캐시에 저장되어 있기 때문에 정확한 값을 반환합니다. SELECT FOUND_ROWS() 쿼리 자체는 캐시 할 수 없습니다.

mysql_stmt_prepare() 및 mysql_stmt_execute() 를 사용하여 바이너리 프로토콜을 사용하여 발행 된 준비된 문 ( 섹션 23.8.8 "C API 준비된 문" 을 참조하십시오)은 캐시가 제한됩니다. 쿼리 캐시의 문과의 비교는 ? 파라미터 마커의 확장 된 명령의 텍스트를 기반으로합니다. 문은 바이너리 프로토콜을 사용하여 수행 된 다른 캐시 된 문에만 비교됩니다. 즉, 쿼리 캐시의 목적으로 바이너리 프로토콜을 사용하여 발행 된 준비된 명령문은 텍스트 프로토콜을 사용하여 발행 된 준비된 문 ( 섹션 13.5 "준비된 문을위한 SQL 구문" 을 참조하십시오 )로 구분됩니다.

쿼리에 다음 표에 나열된 함수 중 하나가 포함 된 경우 쿼리 캐시 할 수 없습니다.

AES_DECRYPT() (5.7.4 현재) AES_ENCRYPT() (5.7.4 현재) BENCHMARK()
CONNECTION_ID() CONVERT_TZ() CURDATE()
CURRENT_DATE() CURRENT_TIME() CURRENT_TIMESTAMP()
CURTIME() DATABASE() 하나의 파라미터를 가지는 ENCRYPT()
FOUND_ROWS() GET_LOCK() LAST_INSERT_ID()
LOAD_FILE() MASTER_POS_WAIT() NOW()
PASSWORD() RAND() RANDOM_BYTES()
RELEASE_LOCK() SLEEP() SYSDATE()
매개 변수가없는 UNIX_TIMESTAMP() USER() UUID()
UUID_SHORT()

다음과 같은 조건의 쿼리도 캐시되지 않습니다.

  • 그것이 사용자 정의 함수 (UDF) 또는 스토어드 함수를 참조하고있다.

  • 그것이 사용자 변수 또는 로컬에 저장된 프로그램 변수를 참조하고있다.

  • 그것이 mysql , INFORMATION_SCHEMA 또는 performance_schema 데이터베이스의 테이블을 참조하고있다.

  • (MySQL 5.6.5 이후 :) 그것은 분할 된 테이블을 참조하고있다.

  • 그것은 다음과 같은 형식이다.

     SELECT ... LOCK IN SHARE MODE
     SELECT ... FOR UPDATE
     SELECT ... INTO OUTFILE ...
     SELECT ... INTO DUMPFILE ...
     SELECT * FROM ... WHERE autoincrement_col IS NULL
    

    마지막 형식은 마지막 삽입 ID 값을 취득하기위한 ODBC의 해결 방법으로 사용되기 때문에 캐시되지 않습니다. 제 23 장 "Connector 및 API ' 의 Connector / ODBC 섹션을 참조하십시오.

    SERIALIZABLE 격리 수준을 사용하는 트랜잭션의 문은 LOCK IN SHARE MODE 잠금을 사용하기 때문에 그들도 캐시 할 수 없습니다.

  • 그것이 TEMPORARY 테이블을 사용하고있다.

  • 그것이 어떤 테이블도 사용하지 않는다.

  • 그것이 경고를 생성한다.

  • 사용자가 관련된 모든 테이블의 컬럼 레벨의 권한을 가지고있다.


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