rewritebatchedStatements在MySQL内部做了什么?

时间:2014-02-13 18:18:05

标签: mysql spring jdbc

对代码进行一些基准测试,我试图提高批量写入的性能。我目前正在使用Spring的jdbcTemplate来插入updateBatch批处理。

我每批插入50000条记录。使用rewritebatchedStatements=true,插入所有这些记录大约需要60秒。

但是,如果我通过主键对记录进行预排序,我可以将其降低到2秒。

在我的应用程序层中对50,000条记录进行排序非常快,那么当数据未排序时,MySQL中缓慢插入的原因是什么?

1 个答案:

答案 0 :(得分:-1)

一个原因可能是mysql b + tree索引,如果插入记录有主键,mysql会在主键上创建索引。然后,如果重新插入主键低于插入键的记录,创建B +树索引将花费更多时间。

相关问题