Ich habe eine große Tabelle von 10M Zeilen, nennen wir es Tabelle A. Ich habe auch eine andere Tabelle mit der gleichen Struktur genau und mit 2M Zeilen. Nennen wir es Tabelle B.Was ist der beste Weg, UPDATE mit INNER JOIN auf großen Tabellen in MySQL auszuführen?
Jede Zeile enthält ungefähr 20 Felder (sowohl textlich als auch numerisch).
Ich möchte alle Zeilen in Tabelle A mit Werten der entsprechenden Zeilen in Tabelle B (durch den Primärschlüssel verbunden) aktualisieren.
Trivial UPDATE läuft mehrere Stunden:
UPDATE A
INNER JOIN B
ON A.primary_key=B.primary_key
SET A.field1=B.field1,
A.field2=B.field2....;
Können Sie etwas smarter Ansatz beraten eher dann einen einzigen Befehl UPDATE auf INNER JOIN?
Vielen Dank im Voraus!
innodb oder myisam? wenn innodb trans beginnt; aktualisieren; verpflichten; http://dev.mysql.com/doc/refman/5.0/en/commit.html –
InnoDB. Warum "start trans; update; commit" das UPDATE schneller macht? – diemacht