Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询缓存何时刷新?_Mysql_Sql - Fatal编程技术网

MySQL查询缓存何时刷新?

MySQL查询缓存何时刷新?,mysql,sql,Mysql,Sql,我有一个innodb mysql数据库,我想知道查询缓存是在表中发生任何更改时被刷新,还是在只有这些记录发生更改时被刷新 我有一个大桌子,每隔几分钟就会修改一次,所以我想知道它有多有用 谢谢我想你说的不是查询缓存,而是缓冲缓存 查询缓存是最新SQL语句的缓存,这些语句永远不会刷新到磁盘 刷新缓冲区缓存不如刷新缓冲区日志重要。日志会跟踪对数据库中的数据执行的更新。它用于在发生故障时(即缓冲区缓存未刷新到磁盘时)恢复数据库 在InnoDB中刷新缓冲程序日志有三种主要方式,它们由参数InnoDB\u

我有一个innodb mysql数据库,我想知道查询缓存是在表中发生任何更改时被刷新,还是在只有这些记录发生更改时被刷新

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


谢谢

我想你说的不是查询缓存,而是缓冲缓存
查询缓存是最新SQL语句的缓存,这些语句永远不会刷新到磁盘

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

在InnoDB中刷新缓冲程序日志有三种主要方式,它们由参数
InnoDB\u flush\u log\u at\u trx\u commit
控制
MySQL文档引用:

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

资料来源:


希望这会有所帮助

aah是的,缓冲区缓存听起来像它想要的。感谢阅读innodb\u flush\u log\u的\u trx\u提交选项