【发布时间】:2014-03-12 19:26:02
【问题描述】:
做一些代码基准测试,我试图提高批量写入的性能。我目前正在使用 Spring 的 jdbcTemplate 插入带有updateBatch 的批处理。
我每批插入 50000 条记录。使用rewritebatchedStatements=true,插入所有这些记录大约需要 60 秒。
但是,如果我通过主键对记录进行预排序,我可以将其缩短到 2 秒。
在我的应用层对 50,000 条记录进行排序非常快,那么当数据未排序时,MySQL 中插入缓慢的原因是什么?
【问题讨论】:
-
听起来 MySQL 正在破坏索引 - 我不确定
rewritebatchedStatements对这个过程有什么影响(如果有的话)(例如,它是否与首先排序/不排序相关? ) -
也许它只是将 N 个插入合并为一个 stackoverflow.com/a/2297647/2864740 .. that 如何影响 MySQL?我想不多..
-
您可以发布一些显示此行为的示例代码和架构吗?