sql >> Databasteknik >  >> RDS >> Mysql

myisam placera tabelllås på bordet även när du hanterar en "välj" fråga?

MyISAM har olika typer av lås. En SELECT operation placerar ett LÄSSLÅS på bordet. Det kan finnas flera aktiva läslås vid varje given tidpunkt, så länge det inte finns några aktiva SKRIVSLÅS . Operationer som ändrar tabellen, t.ex. INSERT , UPDATE , DELETE eller ALTER TABLE placera ett skrivlås på bordet. Skrivlås kan endast placeras på ett bord när det inte finns några aktiva läslås; Om det finns aktiva läslås köar MyISAM skrivlåset för att aktiveras så snart alla aktiva läslås har upphört.

På samma sätt när det finns ett aktivt skrivlås, kommer ett försök att placera ett läslås på en tabell att köa låset (och den associerade frågan) tills skrivlåsen har upphört att gälla på tabellen.

I slutändan betyder allt detta att:

  • Du kan ha valfritt antal aktiva läslås (även kallade delade lås)
  • Du kan bara ha ett aktivt skrivlås (även kallat ett exklusivt lås)

För mer information se:http://dev.mysql. com/doc/refman/5.5/en/internal-locking.html



  1. Hur man lagrar bilder i MySQL-databas

  2. Lokal Firebird db replikering/synkronisering till online db

  3. Laravel Migration Error:Syntaxfel eller åtkomstöverträdelse:1071 Angiven nyckel var för lång; max nyckellängd är 767 byte

  4. Vad betyder <> i Oracle