巨大的表上的MySQL更新

时间:2012-01-24 20:01:07

标签: mysql locking temp-tables

我想更新一个包含9000万条记录的表格。

例如:

UPDATE huge_table set field3 = CONCAT_WS(' ', field1, field2)

更新会锁定表格一段时间,我想尽量减少锁定的时间。

我应该填充临时表来存储值,然后从临时表中分配它们吗?或者我应该尝试批量更新1000?也许是两者的结合。

3 个答案:

答案 0 :(得分:1)

我会批量运行更新。

答案 1 :(得分:0)

您应该在不同的环境中执行类似的加载,并将表重新指向新数据集。

答案 2 :(得分:0)

两者都不是。您需要尽可能快地进行更新。如果您创建临时表,那么您将添加9000万次插入和删除。

考虑表分区。请参阅http://dev.mysql.com/doc/refman/5.5/en/partitioning-overview.html