首页 运维知识 关于“mysql中的SQL_CACHE”(性能更优化)

关于“mysql中的SQL_CACHE”(性能更优化)

关于mysql中的SQL_CACHE(性能更优化) 操作如下: mysql中的sql_cache是个容易忽视的地方,要 使用的话,必须先设置query_cache_size, 以及…

关于mysql中的SQL_CACHE(性能更优化)
操作如下:

mysql中的sql_cache是个容易忽视的地方,要
使用的话,必须先设置query_cache_size,
以及设置query_cache_type ,其中
query_cache_type 这个可以被设置为 (只能是数字) 选项  含义
0  (OFF, 不缓存或重新得到结果)
1  (ON, 缓存所有的结果,除了 SELECT SQL_NO_CACHE … 查询)
2  (DEMAND, 仅缓存 SELECT SQL_CACHE … 查询)

所以设置为1时,可以如下这样查询的话,会用到缓存
SELECT SQL_CACHE something FROM table

强制不使用缓存
SELECT SQL_NO_CACHE id,field FROM table WHERE 1

使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询。FLUSH TABLES 会转储清除查询缓存。

RESET QUERY CACHE 使命从查询缓存中移除所有的查询结果。

你可以检查查询缓存在你的 MySQL 是否被引进:

mysql> SHOW VARIABLES LIKE ‘have_query_cache’;
+——————+——-+
| Variable_name    | Value |
+——————+——-+
| have_query_cache | YES   |
+——————+——-+
1 row in set (0.00 sec)

在 SHOW STATUS 中,你可以监视查询缓存的性能:

变量  含义
Qcache_queries_in_cache  在缓存中已注册的查询数目
Qcache_inserts  被加入到缓存中的查询数目
Qcache_hits  缓存采样数数目
Qcache_lowmem_prunes  因为缺少内存而被从缓存中删除的查询数目
Qcache_not_cached  没有被缓存的查询数目 (不能被缓存的,或由于 QUERY_CACHE_TYPE)
Qcache_free_memory  查询缓存的空闲内存总数
Qcache_free_blocks  查询缓存中的空闲内存块的数目
Qcache_total_blocks  查询缓存中的块的总数目

Total number of queries = Qcache_inserts + Qcache_hits + Qcache_not_cached.

查询缓存使用变长的块,因而 Qcache_total_blocks 和 Qcache_free_blocks 可能显示查询缓存的碎片。在 FLUSH QUERY CACHE 之后,只有剩余一个单独的(大的)空闲块。

注意:每个查询最小需要两个块(一个用于存储查询文本,另一个或多个用于存储查询结果)。同样的,每个被一个查询使用的表需要一个块,但是,如果有两个或更多的查询使用同一张表,仅仅只需要分配一个块就行了。

你可以使用状态变量 Qcache_lowmem_prunes 来谐调查询缓存尺寸。它计数被从缓存中移除的查询,该查询的移除是为了释放内存,以缓存新建的查询。查询缓存使用一个 least recently used (LRU) 策略来判断从缓存中移除哪个查询。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: 小小编

为您推荐

dell R710 更换raid卡后,raid卡信息没有了,处理方案

dell R710 更换raid卡后,raid卡信息没有了,处理方案

1.将一台服务器(A)的硬盘依次拔出,按相同顺序插入另一台同样配置的服务器(B) 2.启动服务器(B) 3.按提示键盘按...
PL SQL Developer 13连接Oracle数据库并导出数据详细操作教程方法

PL SQL Developer 13连接Oracle数据库并导出数据详细操作教程方法

下载 并安装 PL SQL Developer 13,默认支持中文语言 ========================...
关于一条sql语句在mysql中是如何执行的

关于一条sql语句在mysql中是如何执行的

最近开始在学习mysql相关知识,自己根据学到的知识点,根据自己的理解整理分享出来,本篇文章会分析下一个sql语句在my...
关于sql注入姿势总结(mysql)

关于sql注入姿势总结(mysql)

前言 学习了sql注入很长时间,但是仍然没有系统的了解过,这次总结一波,用作学习的资料。 从注入方法分:基于报错、基于布...
关于Oracle SQL外连接

关于Oracle SQL外连接

SQL提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同。 连接...

发表回复

返回顶部