Уровни изоляции MySQL, измерение их влияния на тупики - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь сгенерировать несколько графиков, используя тест sysbench (конфигурация по умолчанию), пытаясь показать взаимосвязь между взаимоблокировками и уровнем изоляции в MySQL.

Но я получаю некоторые странные результаты: у меня сложилось впечатление, что повторяемое чтение будет иметь больше взаимоблокировок, чем зафиксированное чтение (что имеет место), но значительно больше, чем чтение незафиксированное. На самом деле оказывается, что чтение незафиксировано имеет больше взаимоблокировок, чем любой.

Это нормально? И если да, то почему?

1 Ответ

1 голос
/ 09 июня 2012

тупик может возникнуть при любом уровне изоляции . Трудно сказать без реальных тестов, но я предполагаю, что в случае чтения с фиксацией / повторением, если вам нужно прочитать значение обновляемой строки, это значение читается из журнала отката, но в случае чтения журнал незафиксированного отката не используется, поэтому, если строка заблокирована для обновления, чтение должно ожидать фактического значения для записи. Но это дикое предположение, что больше взаимоблокировок при чтении без передачи - странное поведение и, скорее всего, зависит от реализации. Мне было бы интересно, если бы вы могли предоставить реальные тесты, и если тест может быть повторен в разных версиях MySQL.

...