InnoDB

InnoDB — одна из выбираемых подсистем низкого уровня в СУБД MySQL, входит во все стандартные сборки для различных операционных систем. Основным отличием InnoDB от других подсистем низкого уровня MySQL является наличие механизма транзакций и внешних ключей.

СУБД InnoDB была разработана Хейкки Туури (фин. Heikki Tuuri) из компании Innobase — финского производителя программного обеспечения, специализирующегося на технологии реляционных баз данных.

InnoDB представляет собой результат исследований, проводимых Хейкки в университете Хельсинки. После поглощения Innobase в 2005, InnoDB стала продуктом Sun Microsystems, впоследствии поглощённой Oracle Corporation.

Поддержка InnoDB появилась в MySQL версии 3.23, а начиная с версии 5.5 стал основным хранилищем по умолчанию. Сама СУБД доступна на условиях открытой лицензии.

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

Формат данных InnoDB обеспечивает надежное хранение данных за счет транзакционности и блокировки данных на уровне строки.

В последнее время из-за излишней закрытости разработки MySQL компанией Sun Microsystems, появилось много сторонних (например, от компании Google) патчей с улучшениями производительности и исправлениями ошибок, большинство из которых были включены в форк InnoDB под названием XtraDB, созданный компанией Percona.