Метка: статья в публичном аккаунте "Мы все маленькие лягушки"
В статье несколько дней назадУровень изоляции транзакций MySQL и MVCCПринцип работы InnoDB MVCC объясняется в , но в одном месте есть ошибка, которая будет исправлена.
Исходная ошибка:
Генерируется в транзакцииreadview
, транзакции чтения и записи, выполняемые в данный момент в системе, будут записаны вm_ids
В списке при оценке видимости записи то, что было написано в предыдущей статье, это когда записьtrx_id
свойство больше, чемm_ids
Запись не видна, когда максимальное значение в .
Он должен читаться следующим образом:
Генерируется в транзакцииreadview
, транзакции чтения и записи, выполняемые в данный момент в системе, будут записаны вm_ids
В списке хранятся два дополнительных значения:
-
min_trx_id
: Это значение представляет поколениеreadview
Времяm_ids
минимальное значение в . -
max_trx_id
: Это значение представляет поколениеreadview
Значение идентификатора в системе, которое должно быть присвоено следующей транзакции.Советы: Обратите внимание, что max_trx_id не является максимальным значением в m_ids, идентификаторы транзакций выделяются постепенно. Например, сейчас есть три транзакции с id 1, 2 и 3, а затем фиксируется запись с id 3. Затем, когда новая транзакция чтения генерирует readview, m_ids включает 1 и 2, значение min_trx_id равно 1, а значение max_trx_id равно 4.
Итак, шаги для определения видимости:
- если записано
trx_id
столбец меньшеmin_trx_id
, описание точно видно. - если записано
trx_id
Столбецmax_trx_id
, описание точно не видно. - если записано
trx_id
перечислены вmin_trx_id
иmax_trx_id
В промежутках давайте посмотрим наtrx_id
так или иначеm_ids
В списке, если он есть, описание не видно, иначе видно.
Если эта проблема очень неудобна для студентов, эта проблема также была обнаружена после внимательного прочтения кода MVCC.Я был небрежен, когда читал его раньше~
Мышление: какое влияние окажет предыдущая версия с неправильной версией? Только после понимания этой проблемы вы сможете понять MVCC~
Не по теме
Эта статья из собственного паблика ребенка "Мы все маленькие лягушки", подписаться можно всем, есть технические статьи по галантерейным товарам, и я буду время от времени рассказывать об этом: