2011-06-18 70 views
2

简单问题:D。我知道该怎么做,但我必须尽快做到。MySQL快速交叉表更新

什么是最省时的方法?

场景:两个表,tableAtableB,更新来自tableB.columnBtableA.columnA,基于tableA.primarykey = tableB.primarykey

问题:tableAtableB每个都超过10.000.000条记录。

回答

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

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

你能做的最好的:在加盟领域

  • 索引,但你有这一点,因为这些领域是主键
  • 限制由where条件(如果适用)。索引涵盖需要加速的条件。
+3

这是非常多的答案。如果速度不够快,您可能需要更好的索引和/或更快的硬件。 – Flimzy