InnoDB — одна из выбираемых подсистем низкого уровня в СУБД MySQL, входит во все стандартные сборки для различных операционных систем. Основным отличием InnoDB от других подсистем низкого уровня MySQL является наличие механизма транзакций и внешних ключей.
СУБД InnoDB была разработана Хейкки Туури (фин. Heikki Tuuri) из компании Innobase — финского производителя программного обеспечения, специализирующегося на технологии реляционных баз данных. InnoDB представляет собой результат исследований, проводимых Хейкки в университете Хельсинки. После поглощения Innobase в 2005, InnoDB стала продуктом Sun Microsystems, впоследствии поглощённой Oracle Corporation. Поддержка InnoDB появилась в MySQL версии 3.23, а начиная с версии 5.5 стал основным хранилищем по умолчанию. Сама СУБД MySQL пока доступна на условиях открытой лицензии.
В отличие от таблиц MyISAM, где для каждой таблицы создается один файл данных, данные InnoDB в настройках по умолчанию хранятся в больших совместно используемых файлах (изменить это можно с помощью настроек опции innodb_file_per_table), что позволяет использовать постраничный кэш страниц базы данных. Формат данных InnoDB обеспечивает надежное хранение данных за счет транзакционности и блокировки данных на уровне строки.
В последнее время из-за излишней закрытости разработки MySQL компанией Sun Microsystems, появилось много сторонних (например, от компании Google) патчей с улучшениями производительности и исправлениями ошибок, большинство из которых были включены в форк InnoDB под названием XtraDB, созданный компанией Percona.
Знаете ли Вы, что наследование, Inheritance - Наследование в объектно-ориентированном программировании - это свойство объекта, заключающееся в том, что характеристики одного объекта (объекта-предка) могут передаваться другому объекту (объекту-потомку) без их повторного описания. Наследование упрощает описание объектов.