首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Mysql Query Cache的负面影响

Mysql Query Cache的负面影响

作者头像
dys
发布2018-04-02 16:43:13
发布2018-04-02 16:43:13
1.2K0
举报
文章被收录于专栏:性能与架构性能与架构

Query Cache确实是以比较简单的实现带来巨大性能收益的功能。但可能很多人都忽略了使用QueryCache之后所带来的负面影响

(1)Query的hash运算及hash查找资源消耗

在使用Query Cache,每条SELECT类型的Query到达MySQL之后,都须要进行一个hash运算,然后查找是否存在该Query的Cache,虽然这个hash运算的算法可能已经非常高效,且hash查找的过程也已经足够的优化了,对于一条Query来说消耗的资源确实是非常之少,但是当发生高并发Query时,就不能忽视对CPU的消耗了

(2)Query Cache的失效问题

如果表的变更比较频繁,则会造成Query Cache的失效率非常高。这里表的变更不仅指表中数据的变更,还包括结构或索引等的任何变更。也就是说每次缓存到Query Cache中的Cache数据可能在被存入后很快就会因为表中的数据被改变而被清除,导致新的相同Query进来后无法使用到之前的Cache

(3)内存资源过渡消耗问题

Query Cache中缓存的是Result Set,而不是数据页,也就是说,存在同一条记录被Cache多次的可能性,从而造成内存资源的过渡消耗。当然,可以限定Query Cache的大小,但是这样,Query Cache就很容易造成因为内存不足而被换出,造成命中率下降

这几个问题甚至可能同时发生,那么,Query Cache的使用就得不偿失了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档