mysql緩存命中率_MySQL緩存命中率概述及如何提高緩存命中率

本文介绍了MySQL查询缓存的工作原理,包括无法缓存的查询类型,并提供了查询缓存的相关配置参数。通过`show global status like 'QCache%'`查看缓存状态,计算命中率和内存使用率。为了提高缓存命中率,建议设置合适的`query_cache_size`,避免内存碎片,考虑使用InnoDB存储引擎的缓冲池,并注意字符集、SQL语句固化、分区表等策略。对于多应用环境,可以手动调整缓存空间分配。
摘要由CSDN通过智能技术生成

MySQL緩存命中率概述

工作原理:

查詢緩存的工作原理,基本上可以概括為: 緩存SELECT操作或預處理查詢(注釋:5.1.17開始支持)的結果集和SQL語句; 新的SELECT語句或預處理查詢語句,先去查詢緩存,判斷是否存在可用的記錄集,判斷標准:與緩存的SQL語句,是否完全一樣,區分大小寫;

查詢緩存對什么樣的查詢語句,無法緩存其記錄集,大致有以下幾類:

1、 查詢語句中加了SQL_NO_CACHE參數;

2、查詢語句中含有獲得值的函數,包涵自定義函數,如:CURDATE()、GET_LOCK()、RAND()、CONVERT_TZ等;

3、 對系統數據庫的查詢:mysql、information_schema 查詢語句中使用SESSION級別變量或存儲過程中的局部變量;

4、查詢語句中使用了LOCK  IN SHARE MODE、FOR UPDATE的語句 查詢語句中類似SELECT …INTO 導出數據的語句;

5、對臨時表的查詢操作; 存在警告信息的查詢語句; 不涉及任何表或視圖的查詢語句; 某用戶只有列級別權限的查詢語句;

6、 事務隔離級別為:Serializable情況下,所有查詢語句都不能緩存;

配置

是否啟用mysql查詢緩存,可以通過2個參數:query_cache_type和query_cache_size,其中任何一個參數設置為0都意味着關閉查詢緩存功能。

query_cache_type 值域為:

0(OFF):關閉 Query Cache 功能,任何情況下都不會使用 Query Cache;

1(ON): 啟用查詢緩存,只要符合查詢緩存的要求,客戶端的查詢語句和記錄集斗可以 緩存起來,共其他客戶端使用;

2(DEMAND):  啟用查詢緩存,只要查詢語句中添加了參數:sql_cache,且符合查詢緩存的要求,客戶端的查詢語句和記錄集,則可以緩存起來,共其他客戶端使用;

query_cache_size 允許設置query_cache_size的值最小為40K,對於最大值則可以幾乎認為無限制,實際生產環境的應用經驗告訴我們,該值並不是越大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值