myql 缓存

  1. select @@query_cache_type; 查询缓存状态 0 = off 关闭 1 =ON 开启 2 = DEMAND  当sql语句中有sql_cache 关键字才缓存
  2. 开启缓存(文件配置方法) 在mysql.ini 文件最后加入 query_cache_type = 1 query_cache_size = 600000 (命令方法->) set global query_cache_type = 1 (也可以 set session query_cache_type = ON) set global query_cache_size 600000 
  3. 查看缓存设置情况 show variables like '%query_cache%' 包括命中率等待
  4. show status  like '%Qcache_hits% ' 查询缓存命中累计次数 如果query_cache_size 为0  缓存没有效果
  5. query_cache_limit 如果查询结果大于该值,则不进行缓存
  6. show variables like '%query_cache%';查询缓存相关变量
  7. show status like '%Qcache%'查看缓存状态
  8. 查询缓存命中率的计算公式是:Qcache_hits/(Qcache_hits + Com_select)。
  9. query_cache_min_res_unit 默认4KB 如果设置大对大数据查询有好处,如果都是小查询容易生成内存碎片,
  10. query_cache_min_res_unit的配置是一柄”双刃剑”,默认是4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据 查询,就容易造成内存碎片和浪费。

    查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%

    如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,如果你的查询都是小数据量的话。

    查询缓存利用率 = (query_cache_size - Qcache_free_memory) / query_cache_size * 100%

    查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且 Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多。

    查询缓存命中率 = (Qcache_hits - Qcache_inserts) / Qcache_hits * 100%

    示例服务器 查询缓存碎片率 = 20.46%,查询缓存利用率 = 62.26%,查询缓存命中率 = 1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片。


  11. 转载地址 http://www.111cn.net/database/mysql/63815.htm

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值