Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql innodb transaktionsparallelität

Ich würde nur den Produktdatensatz sperren (mit Zum Update auswählen - Beachten Sie, dass Sperren im Freigabemodus andere Benutzer nicht daran hindert, dasselbe Produkt zu kaufen) und führen Sie dann den Rest des Vorgangs aus. Auf diese Weise werde ich den Kauf anderer Produkte nicht blockieren (während das Sperren der Tabelle alle Schreibvorgänge blockiert, unabhängig davon, ob es sich um Produkt 1 oder Produkt 2 handelt) und warum Sie die Eigenschaft max_product_can_sell anstelle von (oder nicht zusammen mit) available_quantity behalten Eigentum?

Abhängig von der Isolationsstufe. In serialisierbar - ja, in niedrigeren Levels bin ich mir fast sicher, nein.