使用MySQL进行快速交叉表更新

时间:2011-06-18 03:59:38

标签: mysql sql sql-update query-optimization

简单问题:D。我知道该怎么做,但我必须快速做到。

什么是最节省时间的方法?

场景:两个表tableAtableB,根据tableA.columnAtableB.columnB更新tableA.primarykey = tableB.primarykey

问题:tableAtableB各有超过10.000.000条记录。

1 个答案:

答案 0 :(得分:8)

update TableA as a
    join TableB as b on
        a.PrimaryKey = b.PrimaryKey
set a.ColumnA = b.ColumnB

更新1000万行不能快。嗯......至少与一行的更新相比。

你能做的最好:

  • 关于加入字段的索引,但是你已经得到了这些索引,因为这些字段是主键
  • 限制where条件(如果适用)。索引涵盖需要加速的条件。