使用MySQL查询缓存可以提高MySQL的查询效率
查看当前缓存设置 (单位字节)
mysql> show variables like '%query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache | YES | # 是否允许缓存
| query_cache_limit | 1048576 | # 允许单条数据缓存的最大值
| query_cache_min_res_unit | 4096 | #
设置查询缓存分配内存的最小单位,要适当地设置此参数,可以做到为减少内存块的申请和分配次数,但是设置过大可能导致内存碎片数值上升。默认值即可
| query_cache_size | 39999488 | # 表示缓存大小,当为0的时候缓存不会被启用
| query_cache_type | ON | #
(
ON/OFF) 顾名思义,
表示缓存是否开启
| query_cache_wlock_invalidate | OFF | # 主要针对MyISAM引擎,当添加了写锁并且有相应的缓存,有查询SQL的时候,是等数据写入并更新缓存时返回结果,还是直接返回更新前的的结果
+------------------------------+----------+ # OFF 表示在添加写锁的时候就使缓存失效
6 rows in set (0.09 sec) # ON 表示在解除写锁的时候更新缓存
启用缓存
在启动MySQL时添加启动参数 --query-cache-type=1