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

MySQL Sperren auf Zeilenebene

Sie müssen der id einen Index hinzufügen Spalte, um sicherzustellen, dass Sie eine Sperre auf Zeilenebene erhalten. SELECT ... FOR UPDATE sperrt alle Zeilen, die gelesen werden, um die Abfrage auszuführen, nicht nur die tatsächlich ausgewählten Zeilen. Ohne einen Index muss es einen vollständigen Tabellenscan durchführen, sodass jede Zeile als Ergebnis gesperrt wird.

Bei einem Index setzt er einfach eine Sperre in diesen Indexeintrag, er muss keine anderen Zeilen lesen, also werden keine anderen Zeilen gesperrt.