InnoDB storage engine

InnoDB storage engine в MySQL.

Как уже было сказано в разделе “Storage engines в MySQL“? в MySQL, начиная с версии 5.5, “движком” по умолчанию является InnoDB, который заменил MyISAM. InnoDB встроен в ядро MySQL сервера, т.е. не нужно подключать никаких специальных плагинов для его использования.

InnoDB обладает довольно высокой надежностью и высокой производительностью. К его основным преимуществам можно отнести следующие:

  • Поддержка транзакционной модели, совместимой с требованиями ACID, позволяющая выполнять команды управления транзакциями COMMIT, ROLLBACK, а также осуществлять восстановление после сбоев (crash-recovery) для защиты пользовательских данных.
  • MVCC (MultiVersion Concurrency Control) – управление конкурентным доступом с помощью мультиверсионности. т.е. предоставление пользователям “снимка БД”, где не отражены незавершенные транзакции других пользователей. В одной из следующих тем рассмотрим это подробнее.
  • Поддержка блокировок на уровне строк.
  • Поддержка внешних ключей, включая каскадные delete и update.
  • Качественная работа с I/O (ввод/вывод), вытекающая из некоторых особенностей InnoDB. Во-первых, организация хранения табличных данных на дисках была специальным образом оптимизирована для запросов. Во-вторых, наличие собственного буферного пула в памяти позволяет закэшировать таблицы и индексы, что позволяет уменьшить количество обращений к дискам (I/O).
  • Возможность использования смешанных запросов, т.е. в одном запросе могут использоваться и таблицы с InnoDB,  и  таблицы с другими storage engine, например MEMORY.
  • Улучшенная защита от сбоев. Быстрое и автоматическое восстановление после сбоев.
  • Поддержка согласованного и горячего (online) логического бекапа.

Эти преимущества и служат причиной выбора InnoDB и разработчиками, и администраторами.

Оглавление.

Leave a Reply

Your email address will not be published. Required fields are marked *