启用MySQL查询缓存

系统管理员 2022-05-30 10:17 240阅读 0赞

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

2、查看查询缓存情况:

  1. mysql> show variables like '%query_cache%';
  2. query_cache_type ON 表示已经开启)
  3. +------------------------------+----------+
  4. | Variable_name | Value |
  5. +------------------------------+----------+
  6. | have_query_cache | YES |
  7. | query_cache_limit | 1048576 |
  8. | query_cache_min_res_unit | 4096 |
  9. | query_cache_size | 20971520 |
  10. | query_cache_type | ON |
  11. | query_cache_wlock_invalidate | OFF |
  12. +------------------------------+----------+

3、如果不是ON,修改配置文件以开启查询缓存:

  1. vi /etc/my.cnf
  2. [mysqld]中添加:
  3. query_cache_size = 20M
  4. query_cache_type = ON

4、重启mysql服务:

  1. service mysql restart

5、查看缓存使用情况:

  1. mysql> show status like 'qcache%';
  2. +-------------------------+----------+
  3. | Variable_name | Value |
  4. +-------------------------+----------+
  5. | Qcache_free_blocks | 83 |
  6. | Qcache_free_memory | 19811040 |
  7. | Qcache_hits | 3108196 |
  8. | Qcache_inserts | 757254 |
  9. | Qcache_lowmem_prunes | 20720 |
  10. | Qcache_not_cached | 47219 |
  11. | Qcache_queries_in_cache | 47 |
  12. | Qcache_total_blocks | 276 |
  13. +-------------------------+----------+

6、其中各个参数的意义如下:
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:缓存中块的数量。

7、对于某些不想使用缓存的语句,可以这样使用:

  1. select **SQL_NO_CACHE** count(*) from t_user where tell = '153********';

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!


持续更新中…

如有对思路不清晰或有更好的解决思路,欢迎与本人交流,QQ群:273557553,个人微信:
你遇到的问题是小编创作灵感的来源!


发表评论

表情:
评论列表 (有 0 条评论,240人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysql查询缓存

    mysql查询缓存    > 查询缓存(Cache&Buffer),这是MySQL的一个可优化查询的地方;如果开启了查询缓存,之前执行过的语句及其结果可能会以 key-

    相关 [高性能MySQL]--查询缓存

    简单点说,就是对于相同SQL可以跳过SQL解析和执行计划生成阶段,直接返回缓存的结果。也就是缓存完整的SELECT 查询结果。 1. MySQL查询缓存: 缓存存放在一

    相关 Mysql 查询缓存

    Mysql 查询缓存 查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。

    相关 启用MySQL查询缓存

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

    相关 MySQL 查询缓存

    查询缓存是用来缓存一个查询SQL的结果集,下次执行相同SQL时,直接从查询缓存里取得已有的结果,而不需要重新对SQL解析,优化,执行。 查询缓存是会话间共享的,即不同会话执

    相关 MYSQL-查询缓存

    查询的执行路径 ![MYSQL-查询缓存][MYSQL-] 过程: > 数据默认是放在磁盘上的文件,如果我们每次查询都要去磁盘上查找,效率是非常低下的。但是我们把