MySQL查询缓存什么时候刷新?

时间:2013-01-30 14:13:16

标签: mysql sql

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

我有一个大表每隔几分钟就会被修改一次,所以我想知道它是多么有用。

由于

1 个答案:

答案 0 :(得分:2)

我认为您不是在讨论查询缓存,而是关于缓冲区缓存
查询缓存是最新SQL语句的缓存,它们永远不会刷新到磁盘。

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

在InnoDB中有3种主要方法可以刷新缓冲区日志,并使用参数innodb_flush_log_at_trx_commit控制它们。 MySQL docs引用:

“如果发生崩溃,你可以负担丢失一些最新提交的事务,你可以将innodb_flush_log_at_trx_commit参数设置为0.无论如何,InnoDB会尝试每秒刷新一次日志,尽管冲洗不是此外,将innodb_support_xa的值设置为0,这将减少因磁盘数据和二进制日志同步而导致的磁盘刷新次数。“

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

希望有所帮助