mysql 缓存 linux_MySQL的查询缓存功能现已成了瓶颈!

导读

多核机器变得很忙碌时,可扩展性就会很糟糕,于是MySQL数据库的开发人员决定要另谋出路。MySQL Server的一群开发人员已认定,MySQL的查询缓存(Query Cache)这项功能现已成了瓶颈,于是果断终结了该功能。

8b053db29ec65a788ddf280b92ec71ba.png

如果你在网上搜索一下“tuning MySQL query cache”(优化MySQL查询缓存),看到那么多的结果以及有人提供的五花八门的建议,这则新闻也就并不完全令人惊讶了。

正如MySQL Server的产品经理摩根·托克(Morgan Tocker)在这里撰写的那样,问题在于可扩展性。

缓存的操作看起来简单得很:SELECT(选择)命令存储在一个哈希表(又叫散列表,hash table)中;如果入站请求与哈希匹配,服务器就能返回上一次查询执行的结果(并且有保护机制,那样服务器不会返回过时陈旧的结果。)

托克写道,问题在于,“众所周知,面对多核机器上的高吞吐量工作负载,缓存无法很好地扩展。”

他继续写道,就算这个问题能够得到解决,解决办法也无法让查询缓存的性能变得更易于预测(言外之意就是变得更稳定);对于面向用户的系统来说,性能的稳定性常常比峰值吞吐量来得更重要。

MySQL Server的一群开发人员已决定“致力于其他更普遍适用于所有工作负载的改进方法”,而不是坚持修复缓存问题。

果真需要缓存机制的开发人员可以使用ProxySQL,升级到MySQL 8.0的其他用户“将被鼓励使用服务器端Query Rewrite(查询重写)。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值