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服务添加 iptables防火墙策略的方案)
- 阿里云mysql如何接入(阿里云服务器安装Mysql数据库的详细教程)
- mysql账户访问权限(MySQL 权限控制详解)
- mysql主从复制如何实现(MySql主从复制实现原理及配置)
- mysql自定义安装教程5.7(MySQL系列-源码编译安装v5.7.34)
- django连接mysql不支持中文插入(Django创建项目+连通mysql的操作方法)
- mysql mvcc 流程(Mysql MVCC机制原理详解)
- mysql 查询json(MySQL处理JSON常见函数的使用)
- mysqlinnodb有什么功能(Mysql技术内幕之InnoDB锁的深入讲解)
- druid数据库连接池原理详解(阿里巴巴Druid,轻松实现MySQL数据库加密!)
- mysqlselect语句汇总(MySQL Select语句是如何执行的)
- linuxmysql怎么设置root密码(Linux mysql-5.6如何实现重置root密码)
- mysql定期备份(Mysql5.7定时备份的实现)
- mysql数据类型和使用方法(MySQL数据类型全解析)
- mysql自定义函数怎么设置(MySQL自定义变量?学不废不收费~)
- 入秋后的第二场苹果发布会来了 全新M1系列芯片登场(入秋后的第二场苹果发布会来了)
- 苹果正式发布自研芯片M1 5nm 32核心 彻底放弃Intel(苹果正式发布自研芯片M1)
- 苹果自研芯片跑分对比 A16芯片排名靠后,M1系列霸榜(苹果自研芯片跑分对比)
- X86处理器的梦魇 苹果M1自研芯片到底有多强(苹果M1自研芯片到底有多强)
- 泰剧《爱欲之神》Boom kitkong和Great合体杂志(泰剧爱欲之神Boomkitkong和Great合体杂志)
- 素人恋爱综艺火药味十足 男生为赢得芳心集体扯头花,真是出好戏(素人恋爱综艺火药味十足)
热门推荐
- dedecms添加代码(dedecms获取当前所在栏目ID的方法)
- python3语法规则(Python3解释器知识点总结)
- RegisterClientScriptBlock与RegisterStartupScript区别
- js原型链的理解(浅谈JS的原型和原型链)
- docker数据卷是什么(Docker数据卷容器创建及使用方法解析)
- dedecmsv5.7后台路径查找(dedecms 取消服务器/主机空间目录脚本的执行权限方法[图文])
- ASP.NET压缩图片
- 查看mysql索引缓存(MySQL查询缓存的小知识)
- 云服务器地域(为什么云服务器要按地域选择?)
- 虚拟主机跟云主机有什么区别(云主机和虚拟主机哪个好?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9