查询的不同调用被计为一次;这可以帮助找出需要工作量最多的查询。
对查询进行缓存
很多 LAMP 应用程序都严重依赖于数据库,但却会反复执行相同的查询。每次执行查询时,
数据库都必须要执行相同的工作 —— 对查询进行分析, 确定如何执行查询, 从磁盘中加载
信息,然后将结果返回给客户机。 MySQL 有一个特性称为查询缓存,它将(后面会用到的)
查询结果保存在内存中。 在很多情况下, 这会极大地提高性能。 不过, 问题是查询缓存在默
认情况下是禁用的。
将 query_cache_size = 32M 添加到 /etc/my.conf 中可以启用 32MB 的查询缓存。
监视查询缓存
在启用查询缓存之后, 重要的是要理解它是否得到了有效的使用。 MySQL 有几个可以查看的
变量,可以用来了解缓存中的情况。清单 2 给出了缓存的状态。
清单 2. 显示查询缓存的统计信息
1. mysql> SHOW STATUS LIKE 'qcache%';
2. +-------------------------+------------+
3. | Variable_name | Value |
4. +-------------------------+------------+
5. | Qcache_free_blocks | 5216 |
6. | Qcache_free_memory | 14640664 |
7. | Qcache_hits | 2581646882 |
8. | Qcache_inserts | 360210964 |
9. | Qcache_lowmem_prunes | 281680433 |
10. | Qcache_not_cached | 79740667 |
11. | Qcache_queries_in_cache | 16927 |
12. | Qcache_total_blocks | 47042 |
13. +-------------------------+------------+
14. 8 rows in set (0.00 sec)