mysql cache功能分析:
1 mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全全一致,才能够获取到同一个cache。
2
生成cache之后,只要该select中涉及到的table有任何的数据变动(insert,update,delete操作等),
相关的所有cache都会被删除。因此只有数据很少变动的table,引入mysql 的cache才较有意义。关于这方面的测试,可以参考:
《Query Cache,看上去很美》一文。
所以,mysql的cache功能只适用于下列场合:数据变动较少,select较多的table。
那么。在复杂的系统中,如何使用mysql的cache功能呢,基本方法如下:
配置query_cache_type,同时改写程序。
query_cache_type 0 代表不使用缓冲, 1 代表使用缓冲,2 代表根据需要使用。
设置 1 代表缓冲永远有效,如果不需要缓冲,就需要使用如下语句:
SELECT SQL_NO_CACHE * FROM my_table WHERE ...
如果设置为 2 ,需要开启缓冲,可以用如下语句:
SELECT SQL_CACHE * FROM my_table WHERE ...
So,最简单又可靠的做法是:把query_cache_type设置为2,然后在需要提高select速度的地方,使用:
SELECT SQL_CACHE * FROM...
的方式进行SELECT。
【mysql cache调试笔记】
1 可以使用下列命令开启mysql的select cache功能:
SET GLOBAL query_cache_size = 102400000;
因为当query_cache_size默认为0时,是不开启cache功能的。
2 调试:
查看cache的设置:
show variables like '%query_cache%';
性能监控:
show status like '%Qcache%';
3 mysql cache的清理:
可以使用FLUSH QUERY CACHE语句来清理查询缓存碎片以提高内存使用性能。该语句不从缓存中移出任何查询。
RESET QUERY CACHE语句从查询缓存中移出所有查询。FLUSH TABLES语句也执行同样的工作。
分享到:
相关推荐
在MySQL 8.0中,查询缓存功能被默认禁用,并且在某些版本中被完全移除。这是由于MySQL团队认为查询缓存的性能提升在大多数情况下并不显著,反而可能导致额外的内存开销和维护成本。因此,如果你的Mycat配置仍然试图...
内容概要:原创的CODESYS操作MYSQL的功能块的编译库。调用库内功能块可便捷实现对MYSQL数据库的操作。 1,Open,ExecuteNonQuery,QueryData。 2,SQL语句可以有1450个字符(STRING和WSTRING都可以)。 3,QueryData...
首先,MySQL 8.0系列引入了许多关键改进,包括增强的安全性、性能提升和新的SQL功能。8.0.28版本继续优化这些特性,为用户带来更好的体验。例如,它加强了身份验证插件,如内置的 caching_sha2_password,提供了更高...
在Android应用开发中,构建一个登录模块并连接到MySQL数据库是一项常见的需求,特别是在需要处理用户...对于其他开发者而言,这篇小记提供了一个实践性的参考,帮助他们避免遇到类似的问题,顺利地构建自己的登录模块。
这个问题出现的原因在于MySQL 8.0版本中移除了`query_cache`相关的系统变量和功能,因此在使用新版本的JDBC驱动去连接旧版Mycat(可能基于较早版本的MySQL)时,会因找不到这个变量而抛出错误。 首先,我们需要理解...
MySQL的核心功能包括数据存储、管理和检索,它使用SQL(结构化查询语言)进行操作,这是一种标准化的语言,用于创建、更新和查询数据库。MySQL支持多种存储引擎,如InnoDB(默认,支持事务处理)、MyISAM(不支持...
MySQL5.5的新特性:列出MySQL5.5版本中新增的功能和改进。 3.2. MySQL信息源:介绍如何获取MySQL相关的邮件列表、社区支持和论坛。 4. MySQL标准兼容性 4.1. MySQL遵从的标准是什么:详细说明MySQL遵循哪些...
该手册不适用于旧版本MySQL软件,这是因为在MySQL 5.1和以前的版本存在很多功能性差异和其他差异。如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该...
《易语言MySQL全功能操作源码详解》 在IT领域,数据库管理是不可或缺的一部分,而MySQL作为一款开源、免费的关系型数据库管理系统,被广泛应用在各种规模的项目中。易语言,作为中国本土的一种编程语言,以其简洁的...
SpringBoot+MyBatis+Mysql+Layui实现功能完善的原创文学CMS系统 SpringBoot+MyBatis+Mysql+Layui实现功能完善的原创文学CMS系统 SpringBoot+MyBatis+Mysql+Layui实现功能完善的原创文学CMS系统 SpringBoot+...
默认配置下,MySQL的该功能是没有启动的,可能你通过show variables like ‘%query_cache%’;会发现其变量have_query_cache的值是yes,MYSQL初学者很容易以为这个参数为YES就代表开启了查询缓存,实际上是不对的,该...
5.1 MySQL对ANSI SQL92 的扩充 5.2 以ANSI模式运行 MySQL 5.3 MySQL相比ANSI SQL92的差别 5.4 MySQL 缺乏的功能 5.4.1 子选择(Sub-selects) 5.4.2 SELECT INTO TABLE 5.4.3 事务...
这个库提供了.NET应用程序连接、查询和操作MySQL数据库所需的所有功能。它支持标准的ADO.NET接口,如SqlConnection、SqlCommand、SqlDataReader等,因此对于熟悉.NET框架的开发者来说,使用起来非常直观。通过MySql....
thread_cache是MySQL为了提升客户端请求创建连接时的性能而设计的一个功能。它会将不再使用的连接线程存储在连接池(Thread_Cache)中,而不是立即销毁。这样,在新的请求到来时,MySQL会优先在缓存中寻找可用的连接...
基于Springboot+MyBatis+MySQL实现多功能个人博客系统 项目经过严格测试,确保可以运行! 功能点: 用户注册登录功能 Markdown文章发布功能 文章分页显示 文章分类 文章标签/标签云 文章点击量 阅读排行 赞...
在本文中,我们将详细介绍如何在Rocky Linux 9.0系统上使用`yum`命令安装MySQL 8.0,以及安装后的配置步骤,包括启动服务、添加自启动、登录、重置密码、开放远程连接、防火墙设置等关键操作。 **一、检查与安装** ...
Mysql用递归的方式实现Rank功能,比较简单.
MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其最新版本为8.0.28,尤其在Windows操作系统上的安装过程需要特别注意。本教程将详细阐述在...记得定期更新MySQL到最新版本,以获取最新的功能和安全补丁。
这体现了MySQL存储过程的强大功能,能够在数据库层面对数据进行高效的管理和操作。 ### 总结 通过C语言与MySQL数据库的连接,开发者可以充分利用C语言的性能优势和MySQL数据库的灵活性,构建出高效、可靠的数据驱动...
总之,MySQL 8.0.30是MySQL发展的一个重要里程碑,它带来了许多性能提升、功能增强和安全性改进,为开发者和管理员提供了更强大、更安全的数据库解决方案。对于Windows用户来说,"mysql-8.0.30-winx64.zip"提供了一...