Публикации - InnoDB в MySQL

Особенности InnoDB

Начиная с 2010 года в MySQL 5.5 движок хранения данных InnoDB является основным движком в MySQL, и используется по умолчанию. Отличительными особенностями этого движка являются:

  • высокая производительность;
  • автоматическое восстановление данных после сбоя;
  • автоинкрементируемые значения;
  • данные сохраняются в одном или нескольких файлах.

InnoDB - это транзакционная система хранения данных, где даже простые запросы вставки и обновления являются транзакциями. Это значит, что при запросах вставки и обновления данных происходит эксклюзивная блокировка записей: пока не будет выполнен транзакционный запрос для первого клиента, для последующих клиентов исключается возможность других запросов (как чтения, так и записи).

Существует несколько вариантов блокировки: табличная и построчная. При табличной блокировке блокируется и становится недоступной вся таблица. При построчной - только строка. InnoDB поддерживает построчную блокировку.

Может возникать проблема конкурентности, или взаимоисключающие транзакции. Для решения таких проблемм, в InnoDB имеется специальный механизм увеличения конкуретности - Myltiversion Concurency Control, задача которого повысить изолированность запросов. Всего существует 4 уровня изолированности:

  1. READ UNCOMMITED
  2. READ COMMITED
  3. REPEATABLE READ
  4. SERIALIZABLE

По умолчанию используется REPEATABLE READ, который блокирует возможность простого чтения, чернового чтения и неповторяющегося чтения. Однако не блокируется возможность фантомного  чтения.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться