mysql的query cache,为什么要关闭 MySQL Query Cache

MySQL 的 Query Cache 在某些环境是有一定作用的,但大部份的情况都没什么作用,而且反而会影响效能。

当 MySQL 执行 SELECT 查询时,会将结果放到 Query Cache 内,当下次执行相同的 SELECT 查询时,不会在数据库查询结果,而会在 Query Cache 取得,从而提高执行效率。

这样听起来不错,但实际上 Query Cache 的机制有一个问题,就是当资料表被更动后,储存在 Query Cache 的 Cache 会失效,MySQL 会在背后将 Cache 删除及重新建立 Cache。更改资料表其实很常发生,不单单是 TRUNCATE, ALTER TABLE, DROP TABLE 这类更改资料表结构的语句,连 INSERT, UPDATE, DELETE 也会使储存在 Query Cache 的 Cache 失效。所以如果资料表是经常更新的话,Query Cache 反而会使系统的工作量加重。

但如果你的资料表及里面的资料很少更动,那么开启 Query Cache 确实有一定作用。

至于要完整关闭 Query Cache,需要同时将 MySQL 的 query_cache_type 及 query_cache_size 同时设定为 0, 以下是关闭方法:

方法是开启 my.cnf:

# vi /etc/my.cnf

在 [mysqld] 段落,找到 query_cache 的设定,如果没有便自行加入,改成这样:

query_cache_type=0

query_cache_size=0

修改完后需要重新启动 MySQL 才会生效:

# systemctl restart mysql

你可能感兴趣的内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值