5.13. MySQL 쿼리 캐시
5.13.1. 쿼리 캐시의 연산 방식
5.13.2. 쿼리 캐시 SELECT 옵션
5.13.3. 쿼리 캐시 구성
5.13.4. 쿼리 캐시 상태 및 관리
쿼리 캐시는 SELECT 명령문 텍스트를 클라이언트에 보내는 결과와 함께 저장한다. 만약에 동일한 명령문이 나중에 전달되면, 서버는 그 명령문을 다시 분석 (parsing)하고 실행하는 대신에 쿼리 캐시에서 그 결과 값을 추출한다.
쿼리 캐시는 자주 변경되지 않는 테이블이 있고 서버가 동일한 쿼리를 많이 받는 환경에서 매우 유용하게 사용된다. 이것은 데이터 베이스 내용을 기반으로 많은 수의 동적 페이지를 만들어내는 대부분의 웹 서버에서 활용할 수가 있다.
Note: 쿼리 캐시는 오래된 데이터를 리턴 하지는 않는다. 테이블이 수정되면, 쿼리 캐시에 있는 모든 연관 엔트리는 플러시 된다.
쿼리 캐시는 동일한 MyISAM 테이블을 여러 대의 mysqld 서버가 업데이트하는 환경에서는 사용할 수 없다.
Note: 쿼리 캐시는 서버-측면의 프리페어드 (prepared)명령문에서는 사용할 수 없다. Section 24.2.4, “C API 프리페어드 (Prepared) 명령문”을 참조.
서버 스타트업 시점에 쿼리 캐시를 비활성화 시키기 위해서는, query_cache_size 시스템 변수를 0으로 설정한다. 소스 코드를 MySQL을 설치한다면, --without-query-cache 옵션을 사용해서 configure를 실행하면 쿼리 캐시 기능을 전부 제외 시킬 수가 있다.