mysql cache(MySQL取消了Query Cache的原因)
mysql cache
MySQL取消了Query Cache的原因MySQL之前有一个查询缓存Query Cache,从8.0开始,不再使用这个查询缓存,那么放弃它的原因是什么呢?在这一篇里将为您介绍。
MySQL查询缓存是查询结果缓存。它将以SEL开头的查询与哈希表进行比较,如果匹配,则返回上一次查询的结果。进行匹配时,查询必须逐字节匹配,例如 SELECT * FROM t1; 不等于select * from t1;,此外,一些不确定的查询结果无法被缓存,任何对表的修改都会导致这些表的所有缓存无效。因此,适用于查询缓存的最理想的方案是只读,特别是需要检查数百万行后仅返回数行的复杂查询。如果你的查询符合这样一个特点,开启查询缓存会提升你的查询性能。
随着技术的进步,经过时间的考验,MySQL的工程团队发现启用缓存的好处并不多。
首先,查询缓存的效果取决于缓存的命中率,只有命中缓存的查询效果才能有改善,因此无法预测其性能。
其次,查询缓存的另一个大问题是它受到单个互斥锁的保护。在具有多个内核的服务器上,大量查询会导致大量的互斥锁争用。
通过基准测试发现,大多数工作负载最好禁用查询缓存(5.6的默认设置):query_cache_type = 0
如果你认为会从查询缓存中获得好处,请按照实际情况进行测试。
- 数据写的越多,好处越少
- 缓冲池中容纳的数据越多,好处越少
- 查询越复杂,扫描范围越大,则越受益
MySQL8.0取消查询缓存的另外一个原因是,研究表明,缓存越靠近客户端,获得的好处越大。关于这份研究请参考https://proxysql.com/blog/scaling-with-proxysql-query-cache/
下图源自上面的网址:
除此之外,MySQL8.0新增加了对性能干预的工具,例如,现在可以利用查询重写插件,在不更改应用程序的同时,插入优化器提示语句。另外,还有像ProxySQL这样的第三方工具,它们可以充当中间缓存。
综合以上原因,MySQL8.0不再提供对查询缓存的支持,如果用户从5.7版本升级至8.0,考虑使用查询重写或其他缓存。
全文完。
以上就是MySQL取消了Query Cache的原因的详细内容,更多关于MySQL Query Cache的资料请关注开心学习网其它相关文章!
原文链接:https://cloud.tencent.com/developer/article/1693427
- mysql怎么创建联合索引(mysql的联合索引复合索引的实现)
- mysql的索引及其介绍总结(浅析MysQL B-Tree 索引)
- mysql数据库如何删除重复记录(mysql数据库删除重复数据只保留一条方法实例)
- mysql8.0.12安装教程图解(mysql 8.0.22 zip压缩包版免安装下载、安装配置步骤详解)
- mysql5.7.19下载及安装教程(Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法)
- mysql数据库与表的基本操作总结(Mysql、Oracle中常用的多表修改语句总结)
- mysql查看执行慢的sql(系统隐形杀手——阻塞与等待SQL)
- mysql的默认隔离级别(再有人问你MySQL的隔离级别是什么,就把这篇文章发给他!)
- mysql主从同步原理详解(MySQL双主主主架构配置方案)
- mysql数据字段默认值怎么设置(MySQL 字段默认值该如何设置)
- mysql查看死锁记录(mysql查看死锁与去除死锁示例详解)
- mysql架构图(深入了解Mysql逻辑架构)
- 如何重新配置mysql的端口(如何快速修改MySQL用户的host属性)
- mysql导出数据的方法
- 如何在mysql中批量插入数据(MySQL如何快速批量插入1000w条数据)
- mysql主从同步失败原因(mysql 主从复制如何跳过报错)
- 必看 8月,相比七夕,更需要注意的是这些事(必看8月相比七夕)
- 8月23日11时16分将迎处暑,逐渐进入气象意义上的秋天(8月23日11时16分将迎处暑)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
- 城市记忆之上海 最难忘的是老弄堂里的市井味道(城市记忆之上海)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
热门推荐
- html5页面强制刷新(移动端html5判断是否滚动到底部并且下拉加载)
- php面向对象编程代码(php面向对象程序设计入门教程)
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- 云服务器推荐流程(云服务器入门须知的3个技巧)
- web服务器架设步骤及流程(web服务器怎么配置?web服务器配置图文教程)
- python菜单栏教程(Python3.5实现的三级菜单功能示例)
- php递归实现(PHP递归统计系统中代码行数)
- sql server2012自动备份(SQL SERVER 2012数据库自动备份的方法)
- Web.config 图形化编辑器:ASPhere
- jquery添加商品(jquery实现购物车功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9