繁体   English   中英

MySQL-InnoDB缓冲池,禁用/解决方法

[英]MySQL - InnoDB buffer pool, disable/workaround

我正在开发一个无法将大量数据导出到csv文件中的系统。 我们正在为表使用InnoDB。 InnoDB以某种方式缓冲先前的查询/结果。 现在,在生产环境中确实是一件好事,但是在我的开发环境中测试出口的性能时却不是。 缓冲池大小似乎约为128MB。 除了在服务器启动时可以更改某些MySQL设置外,我在google上找不到更多相关信息。

任何人都知道一种变通办法,也许有一条sql语句阻止它放入缓冲区?

这不是问题(自5.1.41开始)

阻止任何InnoDB活动通过buffer_pool是不可能的。 它太深深地扎根于设计中。

buffer_pool缓存数据和索引 ,而不是查询/结果。 查询缓存与查询/结果一起播放。 但是通常应禁用生产系统的质量控制。

innodb_old_blocks_pct(默认值= 37,表示buffer_pool的百分比)可防止从某些操作(例如“导出”所需的读取操作)中清除缓冲池。

请参阅http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_old_blocks_pct以及该部分中的链接。

并将缓冲池设置为一个很小的值(例如:1MB)怎么办?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM