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

m.j*_*ohn 2 mysql sql query-optimization sql-update

简单的问题:D.我知道该怎么做,但我必须快速完成.

什么是最有效的方法?

场景:两个表,tableA并且tableB,更新tableA.columnAtableB.columnB基础上tableA.primarykey = tableB.primarykey.

问题:tableAtableB各超过10.000.000纪录.

Ale*_*Aza 8

update TableA as a
    join TableB as b on
        a.PrimaryKey = b.PrimaryKey
set a.ColumnA = b.ColumnB
Run Code Online (Sandbox Code Playgroud)

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

你能做的最好:

  • 加入字段的索引,但是你有这个,因为这些字段是主键
  • where如果适用,按条件限制.指数涵盖需要加速的条件.

  • 这几乎是_答案.如果它不够快,您可能需要更好的索引和/或更快的硬件. (3认同)