启用MySQL查询缓存

原创 2015年07月08日 17:42:27

启用MySQL查询缓存可以极大地减低数据库服务器的CPU使用率,实际使用情况是:开启前CPU使用率120%左右,开启后降到了10%。


查看查询缓存情况:
mysql> show variables like '%query_cache%'; 
(query_cache_type 为 ON 表示已经开启)
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| have_query_cache             | YES      |
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 20971520 |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+

如果不是ON,修改配置文件以开启查询缓存:
> vi /etc/my.cnf
[mysqld]中添加:
query_cache_size = 20M
query_cache_type = ON

重启mysql服务:
> service mysql restart

查看缓存使用情况:
mysql> show status like 'qcache%';  
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 83       |
| Qcache_free_memory      | 19811040 |
| Qcache_hits             | 3108196  |
| Qcache_inserts          | 757254   |
| Qcache_lowmem_prunes    | 20720    |
| Qcache_not_cached       | 47219    |
| Qcache_queries_in_cache | 47       |
| Qcache_total_blocks     | 276      |
+-------------------------+----------+

    其中各个参数的意义如下:  
  • Qcache_free_blocks:缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。  
  • Qcache_free_memory:缓存中的空闲内存。  
  • Qcache_hits:每次查询在缓存中命中时就增大  
  • Qcache_inserts:每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。  
  • Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个 数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks和free_memory可以告诉您属于哪种情况)  
  • Qcache_not_cached:不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。  
  • Qcache_queries_in_cache:当前缓存的查询(和响应)的数量。  
  • Qcache_total_blocks:缓存中块的数量。 

对于某些不想使用缓存的语句,可以这样使用:
select SQL_NO_CACHE count(*) from users where email = 'hello';

原创文章,转载请注明转自Clement-Xu的csdn博客。

版权声明:本文为原创文章,转载请注明转自Clement-Xu的csdn博客。

相关文章推荐

MySQL查询缓存总结

可以通过下面的SQL查看当前查询缓存相关参数状态: SHOW VARIABLES LIKE '%query_cache%'; 输出结果类似下面:    qu...

MySQL关闭查询缓存(QC)的两种方法

IT圈的那些事儿 2017-03-14 08:29 MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELE...

mysql查询缓存打开、设置、参数查询、性能变量意思

第一: query_cache_type 使用查询缓存的方式 一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON mysql> select @@query_ca...

Mysql缓存看上去很美

当你的数据库打开了Query Cache(简称QC)功能后,数据库在执行SELECT语句时,会将其结果放到QC中,当下一次处理同样的SELECT请求时,数据库就会从QC取得结 果,而不需要去数据表中查...

使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少...

mysql开启缓存的一些语句

#show variables like 'have_query_cache';是否开启了缓存 #select @@global.query_cache_size; 缓存空间大小,如是0则缓存不可用...

myql优化,启动mysql缓存机制,实现命中率100%

虽然这个标题夸张得过了头,但此文很完整,值得学习。转自 http://www.yy520.net/read.php?278 myql优化,启动mysql缓存机制,实现命中率100% 配置你...

mysql查询缓存配置和查看

Mysql 查询缓存 查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。 1.配置查询缓存 ...
  • czh0423
  • czh0423
  • 2015年04月23日 15:27
  • 3611

mysql 开启查询缓存方法与查询例子

开启缓存,设置缓存大小,具体实施如下: 1、修改配置文件,windows下是my.ini,linux下是my.cnf; 在配置文件的最后追加上:  代码如下 复制代码 query_cach...

浅谈mysql缓存机制【转】

原文地址:http://huangdekai1.blog.163.com/blog/static/30571416200832512143837/   缓存机制简单的说就是缓...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:启用MySQL查询缓存
举报原因:
原因补充:

(最多只允许输入30个字)