`
#rethink#
  • 浏览: 47474 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

mysql cache功能小记

阅读更多
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 thread_cache和table_cache详解

    THREAD_CACHE MySQL里面为了提高客户端请求创建连接过程的性能,提供了一个连接池也就是 Thread_Cache池,将空闲的连接线程放在连接池中,而不是立即销毁.这样的好处就是,当又有一个新的请求的时候,mysql不会立即去创建...

    Mycat处理连接数据库8.0以上程序报错query_cache_size

    在MySQL 8.0中,查询缓存功能被默认禁用,并且在某些版本中被完全移除。这是由于MySQL团队认为查询缓存的性能提升在大多数情况下并不显著,反而可能导致额外的内存开销和维护成本。因此,如果你的Mycat配置仍然试图...

    MySQL 8.0.28 Windows 版本

    首先,MySQL 8.0系列引入了许多关键改进,包括增强的安全性、性能提升和新的SQL功能。8.0.28版本继续优化这些特性,为用户带来更好的体验。例如,它加强了身份验证插件,如内置的 caching_sha2_password,提供了更高...

    原创CODESYS操作MYSQL的功能块库文件

    内容概要:原创的CODESYS操作MYSQL的功能块的编译库。调用库内功能块可便捷实现对MYSQL数据库的操作。 1,Open,ExecuteNonQuery,QueryData。 2,SQL语句可以有1450个字符(STRING和WSTRING都可以)。 3,QueryData...

    MYSQL学习资料

    MySQL数据库扩展小记 mysql架构方案 MySQL水平分区表实际操作总结 Mysql水平分表 mysql水平分表和垂直分表和数据库分区 sysbench mysql 坚持不懈 sysbench安装和使用 SHOW INNODB STATUS 探秘 体验Innodb with ...

    android应用登录模块访问mysql数据库小记.pdf

    在Android应用开发中,构建一个登录模块并连接到MySQL数据库是一项常见的需求,特别是在需要处理用户...对于其他开发者而言,这篇小记提供了一个实践性的参考,帮助他们避免遇到类似的问题,顺利地构建自己的登录模块。

    mysql-8.0.29-winx64.zip

    MySQL的核心功能包括数据存储、管理和检索,它使用SQL(结构化查询语言)进行操作,这是一种标准化的语言,用于创建、更新和查询数据库。MySQL支持多种存储引擎,如InnoDB(默认,支持事务处理)、MyISAM(不支持...

    解决mycatJDBC8驱动连接Mycat1.6报错 Unknown system variable 'query_cache_size'

    这个问题出现的原因在于MySQL 8.0版本中移除了`query_cache`相关的系统变量和功能,因此在使用新版本的JDBC驱动去连接旧版Mycat(可能基于较早版本的MySQL)时,会因找不到这个变量而抛出错误。 首先,我们需要理解...

    MYSQL文档完美中文版

    MySQL5.5的新特性:列出MySQL5.5版本中新增的功能和改进。 3.2. MySQL信息源:介绍如何获取MySQL相关的邮件列表、社区支持和论坛。 4. MySQL标准兼容性 4.1. MySQL遵从的标准是什么:详细说明MySQL遵循哪些...

    易语言MYsql全功能操作源码两例程

    《易语言MySQL全功能操作源码详解》 在IT领域,数据库管理是不可或缺的一部分,而MySQL作为一款开源、免费的关系型数据库管理系统,被广泛应用在各种规模的项目中。易语言,作为中国本土的一种编程语言,以其简洁的...

    最新版windows mysql-8.0.30-winx64.zip

    总之,MySQL 8.0.30是MySQL发展的一个重要里程碑,它带来了许多性能提升、功能增强和安全性改进,为开发者和管理员提供了更强大、更安全的数据库解决方案。对于Windows用户来说,"mysql-8.0.30-winx64.zip"提供了一...

    MySQL高速缓存启动方法及参数详解(query_cache_size)

    默认配置下,MySQL的该功能是没有启动的,可能你通过show variables like ‘%query_cache%’;会发现其变量have_query_cache的值是yes,MYSQL初学者很容易以为这个参数为YES就代表开启了查询缓存,实际上是不对的,该...

    MySQL中文参考手册.chm

    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 事务...

    C#连接MySQL需要的MySql.Data.dll,MySql.Web.dll

    这个库提供了.NET应用程序连接、查询和操作MySQL数据库所需的所有功能。它支持标准的ADO.NET接口,如SqlConnection、SqlCommand、SqlDataReader等,因此对于熟悉.NET框架的开发者来说,使用起来非常直观。通过MySql....

    MySQL性能优化配置参数之thread_cache和table_cache详解

    thread_cache是MySQL为了提升客户端请求创建连接时的性能而设计的一个功能。它会将不再使用的连接线程存储在连接池(Thread_Cache)中,而不是立即销毁。这样,在新的请求到来时,MySQL会优先在缓存中寻找可用的连接...

    RockyLinux9.0 yum安装 mysql8.0

    在本文中,我们将详细介绍如何在Rocky Linux 9.0系统上使用`yum`命令安装MySQL 8.0,以及安装后的配置步骤,包括启动服务、添加自启动、登录、重置密码、开放远程连接、防火墙设置等关键操作。 **一、检查与安装** ...

    MySQL5.6官方文档

    - **MySQL扩展标准SQL**:MySQL支持标准SQL的同时,也包含了一些扩展功能,这些扩展特性增加了MySQL的灵活性和实用性。 - **MySQL与标准SQL差异**:虽然MySQL尽力遵循标准SQL规范,但仍然存在一些差异,这些差异主要...

    Mysql用递归的方式实现Rank功能

    Mysql用递归的方式实现Rank功能,比较简单.

    mysql-8.0.28-winx64版本详细安装步骤(包含安装所需的dll)

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其最新版本为8.0.28,尤其在Windows操作系统上的安装过程需要特别注意。本教程将详细阐述在...记得定期更新MySQL到最新版本,以获取最新的功能和安全补丁。

    C与MYSQL连接

    这体现了MySQL存储过程的强大功能,能够在数据库层面对数据进行高效的管理和操作。 ### 总结 通过C语言与MySQL数据库的连接,开发者可以充分利用C语言的性能优势和MySQL数据库的灵活性,构建出高效、可靠的数据驱动...

Global site tag (gtag.js) - Google Analytics