Dies haben die Geschichte:Web-Transaktionen SQL-Performance und Genauigkeit Ausgabe
Wenn zwei gleichzeitiger Rückzug sind $ 10 im selben Konto und das Konto hat insgesamt nur 10 $.
Ergebnis: beide Rückzug Erfolg, Kontostand ist - 10 $.
Wenn ich machen die Abfrage wie folgt:
UPDATE table
SET amount = amount - 10
WHERE (amount-10 > 0) AND id = 123;
wird es sicher und genau sein, nur eines der zieht sich zurück will Erfolg.
Gibt es Leistungsprobleme, da der Betrag nicht indiziert werden kann?
Sie haben wahrscheinlich bereits einen Primärschlüssel in Ihrer ID-Spalte. Sie benötigen keine weiteren Indizes in dieser Abfrage. –