我目前正在研究一个 MySQL 数据库,我们看到查询缓存中有大量无效,主要是因为在许多表上执行了大量的 INSERT、DELETE 和 UPDATE 语句。
我要确定的是,允许将查询缓存用于针对这些表运行的 SELECT 语句是否有任何好处。由于它们很快就失效了,在我看来,最好的办法是在这些表的 SELECT 语句上使用 SQL_NO_CACHE。
频繁失效的开销值得吗?
编辑:应以下用户@RolandoMySQLDBA 的要求,这里是有关 MyISAM 和 INNODB 的信息。
数据库
- 数据大小:177.414 GB
- 索引大小:114.792 GB
- 表大小:292.205 GB
我的ISAM
- 数据大小:379.762 GB
- 索引大小:80.681 GB
- 表大小:460.443 GB
附加信息:
- 版本:5.0.85
- 查询缓存限制:1048576
- query_cache_min_res_unit:4096
- 查询缓存大小:104857600
- query_cache_type:开启
- query_cache_wlock_invalidate:关闭
- innodb_buffer_pool_size: 8841592832
- 24GB 内存