MySQL은 캐시를 어떻게 만료합니까?

MySQL은 캐시를 어떻게 만료합니까?

메모리가 충분하다고 가정해 보겠습니다.

MySQL은 캐시에서 가져올지 아니면 다시 쿼리할지 어떻게 결정합니까?

답변1

AFAIK mysql은 테이블이 변경될 때(삽입, 업데이트, 삭제 등) 캐시되어 자동으로 만료됩니다.

mysql은 일반적으로 query_cache_limit 및 크기에 따라 즉시 캐시하며 기본 query_cache_limit는 1M이므로 개별 쿼리가 커지면 변경하지 않는 한 캐시하지 않습니다.

대소문자를 구분하는 쿼리를 고려하므로 쿼리도 동일한지 확인해야 합니다.

그 외에도 다음 명령을 사용하여 모니터링할 수 있습니다.

SHOW STATUS LIKE '%qcache%';

예를 들어 일부 항목이 포함된 테이블을 만들고 다음을 실행합니다.

SELECT id,name FROM my_table WHERE id > '2'; SHOW STATUS LIKE '%qcache%';

캐시된 쿼리 수가 1씩 증가했다는 것을 알 수 있습니다. 이제 동일한 선택을 다시 실행하면 mysql이 이미 캐시를 사용하고 있으며 결과가 훨씬 더 빠르게 발생하는 것을 볼 수 있습니다.

추가 정보

query-cache-type = 1먼저 OS/설치에 따라 my.cnf 또는 my.ini가 있는지 확인해야 합니다 .

mysql에서 다음 명령을 실행하여 상태를 확인할 수 있습니다.

SHOW VARIABLES LIKE '%query_cache%';

데이터를 나열할 때 쿼리 캐시 크기가 표시됩니다. 이 크기가 0으로 설정되면 쿼리 캐시가 비활성화되었음을 의미합니다. 이 변수는 쿼리 캐시에 사용되는 메모리(바이트)를 결정합니다.

따라서 query-cache-type에 대해 했던 것처럼 my.cnf 또는 my.ini에 다음을 추가하세요.

query-cache-size = 40M

관련 정보