Query Cache Configuration
have_query_cache 系统变量表明 是否query cache是可用的:
mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+
1 row in set (0.00 sec)
当使用一个标准的MySQL binary,这个值总是YES,甚至如果query caching is disabled.
其他几个系统变量控制查询cache 操作,那么可以设置在一个选项文件或者在命令行 当启动mysqld时。
query cache 系统变量 有很多以query_cache_开头的。
设置query cache size,设置query_cache_size 系统变量 设置为0 是关闭query cache,
同时设置 query_cache_type=0.
默认,query cache 是关闭的,这是通过一个默认的1mb大小 和 query_cache_type 是0
mysql> SHOW VARIABLES LIKE 'query_cache_%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 1048576 |
| query_cache_type | OFF |
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
5 rows in set (0.00 sec)
减少开销,设置query_cache_type=0 如果你不使用query cache
注意:
当使用Windows 配置向导安装或者配置MySQL, 默认值对于query_cache_size 是自动配置 对于你基于不同的配置选项
当使用Windows配置向导,query cache 可以是启动的( 也就是说,是一个非0值)由于选择的配置选项。
query cache 也是通过设置query_cache_type variable设置
当你设置 query_cache_size 为一个非0值, 记住query cache 需要一个最小40KB 分配它的结构
query_cache_size 的值是对齐到接近1024 字节block.
因此 显示的值可能不同于你分配的值
如果query cache是大于0, query_cache_type 变量影响它的工作,变量可以设置为下面的值:
1. 值为0或者OFF 防止caching或者从cached 结果中检索
2. 值为1或者ON 启用caching 除了那些语句 以SELECT SQL_NO_CACHE 开始
3. 值为2或者DEMAND 导致caching 那些语句 以SELECT SQL_CACHE开头的
如果query_cache_size 是0, 你也应该设置query_cache_type variable为0
在这种情况下, server 不需要query cache mutex,这意味着query cache 不能被启用
设置 全局query_cache_type value 决定query cache 行为对于所有的客户端连接在改变值后。
单个的客户端可以控制cache 行为对于它们自己的连接通过设置 SESSION query_cache_type value.
对于客户端, 一个客户端 可以禁用query cache 对于它自己的查询:
mysql> SET SESSION query_cache_type = OFF;
如果设置query_cache_type 在server 启动阶段( 相比在运行时使用一个SET 语句),只有数字值是允许的
控制 单个 查询结果的最大值 是可以被cached,设置query_cache_limit 系统变量,默认值是1MB
小心 不要设置 cache太大,由于需要用于threads 来锁定cache 在更新时,你可能会看到lock 冲突问题在一个大的cache里
Query Cache Configuration
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:异步请求和超时控制
下一篇:dubbo入门(1)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
深入学习cache--思考篇
ARMv8/ARMv9架构精选系列
v8 v9 个人博客 -
Memcache VS MySQL Query Cache.
我也是Memcache 新手,回答错误莫怪啊。哈哈。
MySQL 数据库 Cache Query Memcache -
8.10.3 The MySQL Query Cache
8.10.3 The MySQL Query...
mysql sql 服务器 缓存 查询缓存