오늘 MySQL 온라인에서 메모리 사용량 알람이 발생하여 innodb_buffer_pool_size 및 쿼리 캐시 사용에 대해 캐시를 중심으로 mysql 메모리 사용량 파라미터를 확인해 보았습니다.
query_cache_type은 기본적으로 켜져 있으며, 캐시 영역 query_cache_size의 기본 크기는 32M입니다. 일반적으로 쿼리 캐시 매개변수를 사용하여 특정 값을 볼 수 있습니다.
“Qcache_free_blocks”: 현재 쿼리 캐시에 남아 있는 블록 수입니다. 값이
보다 크면 쿼리 캐시에 메모리 조각이 더 많다는 뜻이므로 적절한 조각 모음 기회를 찾아야 할 수도 있습니다().
● “Qcache_free_memory”: 현재 쿼리 캐시에 남아있는 메모리 크기입니다. 이 매개변수를 통해 현재 시스템의 쿼리 캐시 메모리 크기가 충분한지, 늘려야 하는지 또는 너무 많은지 더 정확하게 관찰할 수 있습니다.
● " Qcache_hits": 적중 횟수; . 이 매개변수를 통해 Query Cache의 기본 효과를 볼 수 있습니다.
● “Qcache_inserts”: 누락된 횟수와 삽입 횟수. 두 매개변수 "Qcache_hits"와 "Qcache_inserts"를 통해 쿼리 캐시의 적중률을 계산할 수 있습니다.
쿼리 캐시 적중률 = Qcache_hits / ( Qcache_hits + Qcache_inserts )
● “Qcache_lowmem_prunes”: 메모리 부족으로 인해 쿼리 캐시에서 지워진 쿼리 수입니다.
"Qcache_lowmem_prunes"와 "Qcache_free_memory"를 결합하면 우리 시스템
에 있는 쿼리 캐시의 메모리 크기가 실제로 충분한지, 그리고 메모리 부족으로 인해 Query가 교체되는 경우가 매우 빈번함
● "Qcache_not_cached": query_cache_type 설정 또는 캐시할 수 없는 Query 개수 때문에;
● “Qcache_queries_in_cache”: 현재 쿼리 캐시의 쿼리 수
● “Qcache_total_blocks”: 현재 쿼리 캐시의 블록 수
쿼리 캐시의 한계
쿼리 캐시는 물리적인 데이터 페이지가 아닌 논리적으로 구조화된 결과 세트를 저장하므로 성능은 향상되지만
또한 몇 가지 특정 제한 사항이 적용됩니다.
a) 5.1.17 이전 버전에서는 변수 설정을 돕는 Query를 Cache할 수 없으나, 5.1.17 버전부터 Query Cache에서
변수 설정을 돕는 Query를 지원하기 시작했습니다.
b) 모든 하위 쿼리의 외부 쿼리 SQL은 캐시할 수 없습니다.
c) 프로시저, 함수 및 트리거의 쿼리는 캐시할 수 없습니다.
d) 실행될 때마다 다른 결과를 얻을 수 있는 다른 많은 함수가 포함된 쿼리는 캐시할 수 없습니다.
위의 제한 사항을 고려하여 Query Cache 사용 시 해당 테이블의 데이터만 사용할 수 있도록 정확한 설정을 통해 사용하는 것이 좋습니다. 캐시할 쿼리 쿼리 결과입니다.
Qcache_free_blocks 값이 조금 높으면 플러시 쿼리 캐시를 사용하여 정리할 수 있습니다.
친구의 제안:
첫 번째: If 읽기 작업이 많으면 비율을 살펴보십시오. 간단히 말하면 사용자 목록 테이블이거나 제품 목록과 같이 데이터 비율이 상대적으로 고정되어 있으면 이러한 라이브러리를 열 수 있다는 것이 전제입니다. 상대적으로 집중되어 있고 데이터베이스의 관행은 상대적으로 적습니다.
두 번째:
예를 들어 입찰 중 스트레스 테스트를 할 때처럼 "속임수"를 사용하면 여전히 데이터를 받을 수 있습니다. 쿼리 캐시. qps 급증 효과를 얻으려면 프런트 엔드 연결 풀과 기타 구성이 동일합니다. 대부분의 경우 쓰기는 많지만 방문이 많지 않으면 열지 마세요. 예를 들어 소셜 네트워킹 사이트에서는 10%의 사람들이 콘텐츠를 생성하고 나머지 90%는 여전히 콘텐츠를 소비하고 있습니다. 효과는 좋지만 QQ 메시지나 채팅이라면 매우 치명적일 것입니다.
셋째:
웹사이트가 작거나 동시성이 높지 않아도 상관없습니다. 많은 qcache 잠금이 대기 중이므로 일반적으로 동시성이 높을 경우 쿼리 캐시를 열지 않는 것이 좋습니다.
위 내용은 MySQL Query Cache에 대한 경험 교환입니다. 더 많은 관련 내용을 보려면 주의하세요. PHP 중국어 홈페이지(www.php.cn)!