我正在调整一个大型查询,并希望在之前和之后从相同的基线运行它,以进行比较.
我知道mysql查询缓存,但它与我无关,因为无论如何都不会缓存2个查询.
正在缓存的是缓冲池中的innodb页面.有没有办法清除整个缓冲池,以便我可以比较来自同一起点的两个查询?
虽然在运行每个查询后重新启动mysql服务器无疑会起作用,我想尽可能避免这种情况
Rol*_*DBA 11
警告:以下内容仅适用于MySQL 5.5和MySQL 5.1.41+(InnoDB插件)
使用以下设置调整InnoDB缓冲池中条目的持续时间:
SET GLOBAL innodb_old_blocks_time=250; // This is 0.25 seconds
SET GLOBAL innodb_old_blocks_pct=5;
SET GLOBAL innodb_max_dirty_pages_pct=0;
Run Code Online (Sandbox Code Playgroud)
完成测试后,将它们设置回默认值:
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
Run Code Online (Sandbox Code Playgroud)
查看这些设置的定义