【问题标题】:MySQL Update on Huge Table大表上的 MySQL 更新
【发布时间】:2012-01-24 20:01:06
【问题描述】:

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

例如:

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

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

我应该填充一个临时表来存储值,然后从临时表中分配它们吗?还是我应该尝试分批更新 1000 个?也许两者兼而有之。

【问题讨论】:

  • 仍然不确定使用什么解决方案。

标签: mysql locking temp-tables


【解决方案1】:

我会分批运行更新。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 2011-04-07
        • 1970-01-01
        • 2020-09-08
        • 1970-01-01
        • 2013-06-27
        • 1970-01-01
        • 1970-01-01
        • 2021-12-13
        相关资源
        最近更新 更多