《MySQL开发人员对缓存下了一道处决令,枪声已响!》要点:
本文介绍了MySQL开发人员对缓存下了一道处决令,枪声已响!,希望对您有用。如果有疑问,可以联系我们。
多核机器变得很忙碌时,可扩展性就会很糟糕,于是MySQL数据库的开发人员决定要另谋出路.
MySQL Server的一群开发人员已认定,MySQL的查询缓存(Query Cache)这项功能现已成了瓶颈,于是果断终结了该功能.
如果你在网上搜索一下“tuning MySQL query cache”(优化MySQL查询缓存),看到那么多的结果以及有人提供的五花八门的建议,这则新闻也就并不完全令人惊讶了.
正如MySQL Server的产品经理摩根·托克(Morgan Tocker)在这里(http://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/)撰写的那样,问题在于可扩展性.
缓存的操作看起来简单得很:SELECT(选择)命令存储在一个哈希表(又叫散列表,hash table)中;如果入站请求与哈希匹配,服务器就能返回上一次查询执行的结果(并且有保护机制,那样服务器不会返回过时陈旧的结果.)
托克写道,问题在于,“众所周知,面对多核机器上的高吞吐量工作负载,缓存无法很好地扩展.”
他继续写道,就算这个问题能够得到解决,解决办法也无法让查询缓存的性能变得更易于预测(言外之意就是变得更稳定);对于面向用户的系统来说,性能的稳定性常常比峰值吞吐量来得更重要.
MySQL Server的一群开发人员已决定“致力于其他更普遍适用于所有工作负载的改进方法”,而不是坚持修复缓存问题.
果真需要缓存机制的开发人员可以使用ProxySQL,升级到MySQL 8.0的其他用户“将被鼓励使用服务器端Query Rewrite(查询重写).”
原文来自微信公众号:云头条
转载请注明本页网址:
http://www.vephp.com/jiaocheng/3753.html