Ich versuche 100000 + Zeilen Daten aus einer anderen Tabelle zu aktualisieren, aber es dauert zu lange mehr als 120 min ist es eine Möglichkeit, diesen Prozess zu machen schnellAktualisierungsabfrage zu lange dauern, große Daten in MySQL zu aktualisieren
Was ich tue
ich habe zwei Tabelle
+-----------------+ +-----------------------------+
| tags | | items |
+-----------------+ +-----------------------------+
|id | unq | name | |id | tag_id | unq | detail |
+-----------------+ +-----------------------------+
| 1 | n1 | Name1 | | 1 | | n2 | detail2 |
| 2 | n2 | Name2 | | 2 | | n1 | detail1 |
| 3 | n3 | Name3 | | 3 | | n3 | detail3 |
| 4 | n4 | Name4 | | 4 | | n8 | detail8 |
| 5 | n5 | Name5 | | 5 | | n4 | detail4 |
| 6 | n6 | Name6 | | 6 | | n5 | detail5 |
| 7 | n7 | Name7 | | 7 | | n9 | detail9 |
| 8 | n8 | Name8 | | 8 | | n6 | detail6 |
|...| ... | ... | |...| | ... | ... |
+-----------------+ +-----------------------------+
ich habe tag_id
in Artikel Tabelle Namen unq
Spalte aktualisieren
Diese Abfragen verwendet i
Query 1.
UPDATE `items`
INNER JOIN tags ON (tags.unq = items.unq)
SET items.tag_id = tags.id
-- -------------- and ---------------------
Query 2.
UPDATE `items` SET `tag_id`= (SELECT tags.id FROM tags WHERE tags.unq = items.unq Limit 1
Beide Abfragen i verwendet sie
Ausgabe zu viel Zeit nehmen, ich will
+-----------------------------+
| items |
+-----------------------------+
|id | tag_id | unq | detail |
+-----------------------------+
| 1 | 2 | n2 | detail2 |
| 2 | 1 | n1 | detail1 |
| 3 | 3 | n3 | detail3 |
| 4 | 8 | n8 | detail8 |
| 5 | 4 | n4 | detail4 |
| 6 | 5 | n5 | detail5 |
| 7 | 9 | n9 | detail9 |
| 8 | 6 | n6 | detail6 |
|...| ... | ... | ... |
+-----------------------------+
Können Sie pls die Ausgabe für das Update erklären teilen, um zu sehen, wie MySQL Indizes verwendet (falls vorhanden) in das Update? – Shadow