2011-02-10 53 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。