2011-06-18 101 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