Nehmen wir an, dass ich eine Tabelle mit zwei Spalten A und B haben Es ist ein Index auf Spalte A, aber nicht auf der Spalte B Ich möchte mehrere Millionen Anfragen zur Ausgabe wie:MySql UPDATE-Optimierung?
UPDATE t1 SET b=b1 WHERE a=a1;
UPDATE t1 SET b=b2 WHERE a=a2;
....
Es überall sind aus 1 bis 100.000 Zeilen, die jedem eindeutigen Wert von a
entsprechen. Im Durchschnitt ist es um 100.
Für jede Update-Anweisung im Durchschnitt werden 60% der Zeilen nicht geändert, weil für diese Zeilen b
bereits den gewünschten Wert hat. Bei 30% der Aktualisierungen wird keine der übereinstimmenden Zeilen geändert.
Macht es Sinn, solche Aussagen zu verwenden?
UPDATE t1 SET b=b1 WHERE a=a1 AND b<>b1;
Wird es den Prozess Speedup durch unnötiges Rückschreiben auf der Festplatte zu beseitigen oder Mysql 5 klug genug, dass nichts zu erkennen, wird geändert und es besteht keine Notwendigkeit, die Platte zu schreiben zurück?