我想更新一个包含9000万条记录的表格。
例如:
UPDATE huge_table set field3 = CONCAT_WS(' ', field1, field2)
更新会锁定表格一段时间,我想尽量减少锁定的时间。
我应该填充临时表来存储值,然后从临时表中分配它们吗?或者我应该尝试批量更新1000?也许是两者的结合。
答案 0 :(得分:1)
我会批量运行更新。
答案 1 :(得分:0)
您应该在不同的环境中执行类似的加载,并将表重新指向新数据集。
答案 2 :(得分:0)
两者都不是。您需要尽可能快地进行更新。如果您创建临时表,那么您将添加9000万次插入和删除。
考虑表分区。请参阅http://dev.mysql.com/doc/refman/5.5/en/partitioning-overview.html。