如何清除/刷新mysql innodb缓冲池?
我正在优化一个大型查询,并希望在比较之前和之后从同一基准运行它。
我知道mysql查询缓存,但与我无关,因为无论如何都不会缓存2个查询。
正在缓冲的是缓冲池中的innodb页面。有没有一种方法可以清除整个缓冲池,以便可以从同一起点比较两个查询?
虽然在运行每个查询后重新启动mysql服务器无疑会工作,但我想尽可能避免这种情况
回答:
警告:以下内容仅适用于MySQL 5.5和MySQL 5.1.41+(InnoDB插件)
使用以下设置在InnoDB缓冲池中输入条目的持续时间:
SET GLOBAL innodb_old_blocks_time=250; // This is 0.25 secondsSET GLOBAL innodb_old_blocks_pct=5;
SET GLOBAL innodb_max_dirty_pages_pct=0;
完成测试后,将它们设置回默认值:
SET GLOBAL innodb_old_blocks_time=0;SET GLOBAL innodb_old_blocks_pct=37;
SET GLOBAL innodb_max_dirty_pages_pct=90; // 75 for MySQL 5.5/MySQL 5.1 InnoDB Plugin
查看这些设置的定义
- MySQL 5.5
- MySQL 5.1.41+
以上是 如何清除/刷新mysql innodb缓冲池? 的全部内容, 来源链接: utcz.com/qa/431088.html