专栏首页性能与架构Mysql Query Cache的负面影响

Mysql Query Cache的负面影响

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的使用就得不偿失了

本文分享自微信公众号 - 性能与架构(yogoup)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL Query Cache实现原理

    MySQL的Query Cache实现原理实际上并不是特别复杂,简单来说就是将客户端请求的Query语句(仅限于SELECT类型的Query)通过一定的hash...

    dys
  • 如何有效使用Mysql的Query Cache

    须要根据Query Cache失效机制来判断哪些表适合使用Query哪些表不适合。 由于Query Cache的失效主要是因为Query所依赖的Table数据发...

    dys
  • MySQL8 的 Hash join 算法

    以前 MySQL 的 join 算法只有 nested loop 这一种,在 MySQL8 中推出了一种新的算法 hash join,比 nested loop...

    dys
  • MySQL Query Cache实现原理

    MySQL的Query Cache实现原理实际上并不是特别复杂,简单来说就是将客户端请求的Query语句(仅限于SELECT类型的Query)通过一定的hash...

    dys
  • javascript-购物车(2)

    大家好,这几天一直加班,好久没有更新微信公众号了。 这次我们继续来讲解“购物车应用”,这次来讲解下它的路由功能。。 它是一个单页应用,所有的操作和页面跳转都是在...

    web前端教室
  • O2O的本质是什么?

    用户1756920
  • VBA数据类型String

    前面说到的指针Pointer,其实主要是说了取地址函数。得到了变量的地址,只能赋值给Long类型,并没有指针的作用,无法根据这个记录了变量地址的东西来操作变量。...

    xyj
  • 泛函编程(38)-泛函Stream IO:IO Process in action

      在前面的几节讨论里我们终于得出了一个概括又通用的IO Process类型Process[F[_],O]。这个类型同时可以代表数据源(Source)和数据终端...

    用户1150956
  • java设计模式-工厂方法模式

    工厂方法模式提供一个用于创建产品的接口,由实现类决定实现哪些产品。工厂方法模式使一个类的实例化延迟到子类,并且只适用于一个产品的等级结构。

    会说话的丶猫
  • 诺基亚试点利用区块链完善健康数据优势

    虽然技术改善了对健康数据的访问,但由于隐私问题和对数据真实性的担忧,数据往往不能充分发挥其潜力。 诺基亚与芬兰金融服务集团OP Financial Group合...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券