欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql 开发进阶篇系列 24 查询缓存下

程序员文章站 2022-06-21 20:52:01
一. 查询缓存 1.开启缓存 设置了缓存开启,缓存最大限制128M,重启服务后,再次查询 2 测试缓存 现在是缓存2次,命中一次 上面是二个查询sql语句,此时缓存数是4,如下图所示: 此时缓存数是6,说明缓存区分where条件值的大小写。同样也会区分sql关键词的大小写。如下图所示: 设置好que ......

一. 查询缓存

  1.开启缓存

[root@xuegod64 etc]# vim my.cnf

  mysql 开发进阶篇系列 24 查询缓存下

    设置了缓存开启,缓存最大限制128m,重启服务后,再次查询

--  开启查询缓存后
 show variables like '%query_cache%';

    mysql 开发进阶篇系列 24 查询缓存下

  2 测试缓存
  
现在是缓存2次,命中一次
  mysql 开发进阶篇系列 24 查询缓存下

select id from  user1 where id=2
select age from  user1 where id=2

  上面是二个查询sql语句,此时缓存数是4,如下图所示:

  mysql 开发进阶篇系列 24 查询缓存下

--再次查询上面相同的sql语句,此时命中率结果为3,缓存数还是4
select id from  user1 where id=2
select age from  user1 where id=2

  mysql 开发进阶篇系列 24 查询缓存下

--查询相同的sql语句,条件值大小写不一样
select id from  user1 where `name`='abc'
select id from  user1 where `name`='abc'

  此时缓存数是6,说明缓存区分where条件值的大小写。同样也会区分sql关键词的大小写。如下图所示:
  mysql 开发进阶篇系列 24 查询缓存下
  设置好query_cache_size值后,重新启动服务初始化时:query_cache_size==qcache_free_memory的值。
  缓存的命中率公式为: qcache_hits/(qcache_hits+qcache_inserts)。

  总结:根据mysql用户手册,使用查询缓冲最多可以达到238%的效率。但开起缓存,前提条件是你有大量的相同或相似的查询,而很少改变表里的数据,否则没有必要使用此功能。