我有一个包含30M +行的表,每个索引更新都很昂贵。 我有时必须在一个插入中更新和/或添加5000多行。 有时候所有行都是新的,有时候有些是新的。
我无法使用更新 - 因为我不知道哪个已经在表中,所以我使用INSERT .. ON DUPLICATE KEY UPDATE为单个列。
这有时需要花费很多时间> 5秒。
有更好的方法吗?也许我没有给自己解释清楚:)
答案 0 :(得分:0)
您是否发布了5000多个单独的插入语句?如果是这样,在进行插入时锁定表格;它会快得多。
答案 1 :(得分:0)
我添加了BEGIN TRANSACTION和COMMIT来执行插入,并且它通过x4到x10增强了性能。