Исправления в статье MVCC

MySQL

Метка: статья в публичном аккаунте "Мы все маленькие лягушки"

В статье несколько дней назадУровень изоляции транзакций 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~

Не по теме

Эта статья из собственного паблика ребенка "Мы все маленькие лягушки", подписаться можно всем, есть технические статьи по галантерейным товарам, и я буду время от времени рассказывать об этом: