InnoDB indstiller specifikke typer låse som følger.
-
SELECT ... FROM er en konsekvent læsning, læser et øjebliksbillede af databasen og indstiller ingen låse, medmindre transaktionsisolationsniveauet er sat til SERIALIZABLE. For SERIALIZABLE-niveauet sætter søgningen delte næste-tastlåse på de indeksposter, den støder på.
-
VÆLG ... FRA ... LÅS I DELE-TILSTAND sætter delte næste-tastlåse på alle indeksposter, som søgningen støder på.
-
For indeksposter, som søgningen støder på, VÆLG ... FRA ... FOR OPDATERING blokerer andre sessioner fra at udføre VÆLG ... FRA ... LÅS I DELE-TILSTAND eller fra at læse i bestemte transaktionsisolationsniveauer. Konsistente læsninger vil ignorere eventuelle låse, der er sat på de poster, der findes i læsevisningen.
-
OPDATERING ... WHERE ... indstiller en eksklusiv næste-tastlås på hver post, søgningen støder på.
-
DELETE FROM ... WHERE ... indstiller en eksklusiv næste-tastlås på hver post, søgningen støder på.
-
INSERT sætter en eksklusiv lås på den indsatte række. Denne lås er en indeks-registreringslås, ikke en næste-tast-lås (det vil sige, der er ingen mellemrumslås) og forhindrer ikke andre sessioner i at indsætte i mellemrummet før den indsatte række.
InnoDB har flere typer låse på rekordniveau:
-
Record lock:Dette er en lås på en indekspost.
-
Mellemrumslås:Dette er en lås på et mellemrum mellem indeksposter eller en lås på mellemrummet før den første eller efter den sidste indekspost.
-
Næste-tastlås:Dette er en kombination af en registreringslås på indeksposten og en spaltelås på mellemrummet før indeksposten.
Se mere :
Undgå Phantom-problemet ved at bruge Next-Key-låsning