mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+ 1 row in set (0.00 sec) mysql> show status like '%qcache_cache%'; Empty set (0.00 sec) mysql> show status like '%qcache%'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | Qcache_free_blocks | 0 | 缓存空闲的内存块 | Qcache_free_memory | 0 | 在query_cache_size设置的缓存中的空闲的内存 | Qcache_hits | 0 | 缓存的命中次数 | Qcache_inserts | 0 | 查询缓存区此前总共缓存过多少条查询命令的结果 | Qcache_lowmem_prunes | 0 | 查询缓存区已满而从其中溢出和删除的查询结果的个数 | Qcache_not_cached | 0 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 0 | 缓存总的内存块 +-------------------------+-------+ 8 rows in set (0.00 sec)
二、mysql查询缓存的配置和使用
1.配置查询缓存
查询缓存的配置可以通过设置系统环境变量来完成,设置环境变量一般有两种方式:一种是配置文件中配置;另外可以在命令行中配置。
Vim /etc/my.cnf
Query_cache_type可以是0,1,2,0代表不使用缓存,1代表使用缓存,2代表根据需要使用
2.使用查询缓存
3.查询缓存的维护
在使用查询缓存时,可以通过have_query_cache来查看当前服务器是否支持查询缓存,
mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+ Yes表示支持 当查询缓存工作一定时间后,通过show status来监控缓存的性能 mysql> show status like '%qcache%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 268414376 | | Qcache_hits | 0 | | Qcache_inserts | 2 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 3 | | Qcache_queries_in_cache | 2 | | Qcache_total_blocks | 7 | +-------------------------+-----------+ 查询缓存会生成碎片,可以通过下面命令来清理碎片 mysql> flush query cache; Query OK, 0 rows affected (0.00 sec) 如果想清理内存中的碎片: mysql> reset query cache; Query OK, 0 rows affected (0.00 sec) 两个命令同时使用,彻底清理碎片。