插入一个重复更新xx - 它是否还更新表的INDEX?

时间:2011-02-10 14:14:06

标签: mysql

我有一个包含30M +行的表,每个索引更新都很昂贵。 我有时必须在一个插入中更新和/或添加5000多行。 有时候所有行都是新的,有时候有些是新的。

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

这有时需要花费很多时间> 5秒。

有更好的方法吗?也许我没有给自己解释清楚:)

2 个答案:

答案 0 :(得分:0)

您是否发布了5000多个单独的插入语句?如果是这样,在进行插入时锁定表格;它会快得多。

答案 1 :(得分:0)

我添加了BEGIN TRANSACTION和COMMIT来执行插入,并且它通过x4到x10增强了性能。