3

我有一个innodb mysql db,我想知道查询缓存是否会在表中的任何更改时被刷新,或者当只有这些记录发生更改时它会被刷新?

我有一张大桌子,每隔几分钟就会修改一次,所以我想知道它有多大用处。

谢谢

4

1 回答 1

2

我认为您不是在谈论Query Cache,而是在谈论Buffer Cache
查询缓存是最新 SQL 语句的缓存,这些语句永远不会刷新到磁盘。

刷新缓冲区缓存不如刷新缓冲区日志重要。日志会跟踪对数据库中的数据执行的更新。它用于在发生故障时恢复数据库,即当缓冲区缓存未刷新到磁盘时。

在 InnoDB 中刷新缓冲日志有 3 种主要方法,它们由参数控制innodb_flush_log_at_trx_commit
MySQL 文档引用:

“如果发生崩溃时您可以承受丢失一些最新提交的事务,您可以将 innodb_flush_log_at_trx_commit 参数设置为 0。无论如何,InnoDB 都会尝试每秒刷新一次日志,尽管无法保证刷新。另外,设置innodb_support_xa 的值为 0,这将减少由于同步磁盘数据和二进制日志而导致的磁盘刷新次数。”

来源:http ://dev.mysql.com/doc/refman/5.1/en/innodb-tuning.html

希望有帮助

于 2013-01-30T14:14:27.313 回答