Mysql
 sql >> база данни >  >> RDS >> Mysql

inno db нива на изолация и заключване

InnoDB задава специфични типове заключвания, както следва.

  • SELECT ... FROM е последователно четене, четене на моментна снимка на базата данни и без заключване, освен ако нивото на изолация на транзакцията не е зададено на SERIALIZABLE. За ниво SERIALIZABLE търсенето задава споделени заключвания на следващия ключ на записите на индекса, които среща.

  • ИЗБЕРЕТЕ ... ОТ ... ЗАКЛЮЧВАНЕ В РЕЖИМ НА СПОДЕЛЯНЕ задава споделени заключвания на следващия ключ за всички записи на индекси, които среща търсенето.

  • За индексни записи, срещани при търсене, SELECT ... FROM ... FOR UPDATE блокира други сесии от извършване на SELECT ... FROM ... LOCK IN SHARE MODE или от четене в определени нива на изолация на транзакция. Последователните четения ще игнорират всички заключвания, зададени на записите, които съществуват в изгледа за четене.

  • UPDATE ... WHERE ... задава ексклузивно заключване на следващия клавиш за всеки запис, който търсенето среща.

  • DELETE FROM ... WHERE ... задава ексклузивно заключване на следващия клавиш за всеки запис, който търсенето среща.

  • INSERT задава изключително заключване на вмъкнатия ред. Това заключване е заключване на запис на индекс, а не заключване на следващ ключ (т.е. няма заключване на пропуск) и не пречи на други сесии да се вмъкнат в празнината преди вмъкнатия ред.

InnoDB има няколко типа заключвания на ниво запис:

  • Заключване на запис:Това е заключване на запис на индекс.

  • Заключване на празнина:Това е заключване на празнина между записите на индекс или заключване на празнина преди първия или след последния запис на индекс.

  • Заключване на следващия ключ:Това е комбинация от заключване на запис на индексния запис и заключване на празнина на празнината преди индексния запис.

Вижте повече :

Избягване на фантомния проблем с помощта на заключване със следващ ключ

Избягване на блокиране



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчисляване на общата продължителност на времето в MySQL

  2. Последователно ограничение и компенсиране на неправилното разположение в заявката

  3. Как да създам изглед в MySQL?

  4. Параметри на C# MySQL :? или @

  5. Проблем при създаването на MySQL заявка в Symfony, съдържаща JOIN и RAND()