Начиная с 2010 года в MySQL 5.5 движок хранения данных InnoDB является основным движком в MySQL, и используется по умолчанию. Отличительными особенностями этого движка являются:
InnoDB - это транзакционная система хранения данных, где даже простые запросы вставки и обновления являются транзакциями. Это значит, что при запросах вставки и обновления данных происходит эксклюзивная блокировка записей: пока не будет выполнен транзакционный запрос для первого клиента, для последующих клиентов исключается возможность других запросов (как чтения, так и записи).
Существует несколько вариантов блокировки: табличная и построчная. При табличной блокировке блокируется и становится недоступной вся таблица. При построчной - только строка. InnoDB поддерживает построчную блокировку.
Может возникать проблема конкурентности, или взаимоисключающие транзакции. Для решения таких проблемм, в InnoDB имеется специальный механизм увеличения конкуретности - Myltiversion Concurency Control, задача которого повысить изолированность запросов. Всего существует 4 уровня изолированности:
По умолчанию используется REPEATABLE READ, который блокирует возможность простого чтения, чернового чтения и неповторяющегося чтения. Однако не блокируется возможность фантомного чтения.