2011-02-10 36 views
0

我有一个30M +行的表,每个索引更新都很昂贵。 我有时必须在单个插入中更新和/或添加5000多行。有时候所有的行都是新的,有些是新的。插入到一个重复的更新xx - 它是否也更新表的INDEXes?

我不能使用更新 - 因为我不知道哪个已经在表中,所以我使用INSERT .. ON DUPLICATE KEY UPDATE作为单个列。

这有时需要大量的时间> 5秒。

有没有更好的方法来做到这一点?也许我没有足够清楚地解释我自己:)

回答

0

您是否正在发布5000+个单独的插入语句?如果是这样,请在插入时锁定桌子;它会变得更快。

+0

mmm。我把这5000行放入一个带有分隔值的插入。我可以尝试锁定表格并查看效果 – sbargay 2011-02-10 18:15:27

0

我添加了BEGIN TRANSACTION和COMMIT来执行插入,并且它将性能提高了x4到x10。