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

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

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

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

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

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

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

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

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

 

本文地址:http://www.linuxprobe.com/mysqlserver-query-cache.html‎‎‎



为您推荐

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz