以下的文章主要是对MySQL cache功能的描述,同时也对MySQL cache功能的分析,MySQL cache调试笔记与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。
那么。在复杂的系统中,如何使用MySQLcache功能呢,基本方法如下:
配置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时,是不开启MySQL cache功能的。
2 调试:
查看cache的设置:
- show variables like '%query_cache%';
性能监控:
- show status like '%Qcache%';
MySQL cache的清理:
可以使用FLUSH QUERY CACHE语句来清理查询缓存碎片以提高内存使用性能。该语句不从缓存中移出任何查询。
RESET QUERY CACHE语句从查询缓存中移出所有查询。FLUSH TABLES语句也执行同样的工作。
以上的相关内容就是对MySQL cache功能的介绍,望你能有所收获。
转自:http://database.51cto.com/art/201006/203406.htm
分享到:
相关推荐
本文将深入探讨在"MySQL书籍汇总"中提到的几个关键知识点——MySQL的基础、架构和性能优化。 首先,我们来了解一下MySQL的基础。MySQL的基本概念包括数据类型(如INT、VARCHAR、DATE等)、表结构设计(如主键、外键...
本篇将基于提供的面试题汇总,深入探讨MySQL的一些核心概念、最佳实践以及常见问题。 1. **基本概念** - 数据库:存储数据的容器,MySQL中的数据库由多个表组成。 - 表:存储数据的结构化形式,包含列和行。 - ...
Apache是世界上最流行的Web服务器软件,它提供了强大的功能和灵活性。在WAMP环境中,Apache负责接收HTTP请求并返回PHP处理后的动态内容。安装Apache时,你需要下载适用于Windows的二进制文件,然后按照安装向导进行...
《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...
根据提供的文件信息,我们可以推断出这是一份关于IT领域多方面技术和资源的学习资料汇总页面。其中提到的《高性能MySQL(第2版)》是一本专注于MySQL数据库优化和管理的专业书籍。下面将针对该书籍以及MySQL相关的高...
630页BAT面试题汇总及详解-MySQL核心技术与应用解析
- 介绍了`GROUP BY WITH ROLLUP`的功能,以及如何使用它来进行汇总统计。 - **9.4 用bit group functions做统计** - 探讨了使用位组函数(如`BIT_OR`、`BIT_AND`)进行复杂统计的方法。 **第10章 其他需注意的...
- **快速查阅帮助**:提供了快速查找功能,使得开发者能够迅速找到所需的命令或主题。 ##### 第2章 表类型(存储引擎)的选择 - **MySQL存储引擎概述**:MySQL支持多种存储引擎,每种引擎都有其独特的特性和应用...
通常,需要检查的目录包括./data/和./data/cache/两个路径。如果权限设置不正确,需要及时调整,确保运行Discuz的用户或组具有写入这些目录的权限。 在调整好权限后,如果问题依旧存在,我们可以尝试修改Discuz系统...
2021 云和恩墨大讲堂PPT汇总,共50份。 2021 云和恩墨大讲堂内容涵盖Oracle、MySQL、PG等多种数据库。 带你走进PG的世界 MySQL查询优化 Oracle数据库SQL执行计划的取得和解析 11gR2频繁遭遇Checkpoint incompelte ...
MySQL中的binlog(Binary Log)是数据库事务日志的一种,用于记录所有更改数据的SQL语句,以便在系统崩溃或灾难恢复时能够重新执行这些语句,保证数据的一致性和可恢复性。优化binlog是提升数据库性能的关键环节,...
- 题库中提到一个数据库服务器是以读密集型模式运行,且设置了query_cache_type=DEMAND。 - 数据集定期刷新,但文档并未完整提供后续信息,可能需要结合实际数据库知识推测后续情况。 5. MySQL存储引擎相关知识 - ...
它支持部署在腾讯云或单独部署,用户只需在创建表的时候指定一个分表字段,由TDSQL系统负责数据的路由以及汇总,应用层可以对数据库进行透明操作。 功能特性 TDSQL可以提供水平扩容能力,适合海量数据的场景。它...
### 常用数据库的自增字段创建方法汇总 在数据库设计中,自增字段(自动增长字段)是非常常见的一种需求。它主要用于为主键提供唯一且连续递增的标识符,便于记录数据条目的唯一性。不同的数据库系统支持不同的自增...
【C语言基础知识汇总】 C语言是一种强大的、底层的编程语言,它的基础知识构成了许多现代编程语言的基础。以下是关于C语言的一些核心知识点: 1. 函数参数传递:C语言中,函数参数传递主要有两种方式:值传递和...
3. **查询缓存**:尽管MySQL 8.0版本之后已不再推荐使用查询缓存,但在早期版本中合理配置query_cache_size等参数仍然可以提高查询性能。 ### 总结 通过对上述知识点的学习和实践,可以有效地提高MySQL数据库系统...