db / 未分类 · 2016年8月16日

MySQL 查询缓存

mysql开启查询缓存,一般默认是开启了的 (have_query_cache 部分为yes)
mysql> show variables like '%cache%';
+——————————+———————-+
| Variable_name | Value |
+——————————+———————-+
| binlog_cache_size | 32768 |
| binlog_stmt_cache_size | 32768 |
| have_query_cache | YES |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| metadata_locks_cache_size | 1024 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| stored_program_cache | 256 |
| table_definition_cache | 400 |
| table_open_cache | 64 |
| thread_cache_size | 0 |
+——————————+———————-+
查看是否缓存:
mysql> show status like '%Qcache%';
看到所有项目为0,表示缓存功能并没有运行起来。
修改my.cnf配置文件,添加:
query_cache_type = 1
#0 -– 不启用查询缓存;
1 -– 启用查询缓存,只要符合查询缓存的要求,客户端的查询语句和记录集斗可以缓存起来,共其他客户端使用;
2 -– 启用查询缓存,只要查询语句中添加了参数:SQL_CACHE,且符合查询缓存的要求,客户端的查询语句和记录集,则可以缓存起来,共其他客户端使用;
query_cache_limit = 1M //限制查询缓存大小
query_cache_size = 32M //设置缓存占用内存大小
http://www.68idc.cn/help/server/20150703413117.html
MySQL 查询缓存
http://www.cnblogs.com/xiaocen/p/3720337.html