mysql 5.1 - innodb - query_cache_size - 由于内存不足,已从查询缓存中删除 9,418,108 个查询

mysql 5.1 - innodb - query_cache_size - 由于内存不足,已从查询缓存中删除 9,418,108 个查询

目前运行在 16GB 系统上 - Ubuntu 64 位。INnodb 缓冲池设置为 10GB。

tuning-primer 显示以下内容:

QUERY CACHE
Query cache is enabled
Current query_cache_size = 512 M
Current query_cache_used = 501 M
Current query_cache_limit = 4 M
Current Query cache Memory fill ratio = 97.87 %
Current query_cache_min_res_unit = 4 K
However, 9418108 queries have been removed from the query cache due to lack of memory
Perhaps you should raise query_cache_size

删除了超过 900 万个查询。系统正常运行时间为 8 天。我应该完全删除查询缓存吗?我们的数据库总是承受着巨大的 I/O 压力。

蒂亚

答案1

哦,是的,请务必禁用查询缓存(设置查询缓存大小= 0)为什么?

查询缓存总是与 InnoDB 发生冲突。如果 InnoDB 的 MVCC 允许查询从查询​​缓存中提供,并且修改不会影响其他事务的可重复读取,那就太好了。不幸的是,它没有这样做。

显然,您有很多查询很快就失效了并且没有被重复使用。

对于 MySQL 4.0 下的 InnoDB,查询缓存对于事务是禁用的。对于 MySQL 4.1+,当允许基于每个表访问查询缓存时,InnoDB 充当交通警察。

有关如何实际执行的更多信息,请阅读本书第 213-215 页《高性能MySQL(第二版)》

相关内容