SharePoint Alfresco PHP MySQL
О сайте Контакты
понедельник, 16 июня 2014 г.

Что лучше: InnoDB или MyISAM?

Любой программист, использующий в своей работе MySQL, хоть раз в жизни задавался вопросом: какой движок использовать для таблиц? InnoDB или MyISAM? Разумеется, сейчас есть масса других движков, но в данной статье я рассмотрю самые распространенные и устоявшиеся.

Рассмотрим наши любимые движки по их основным отличительным функциональным особенностям. Основные функции для сравнения я поместил в таблице:

Функция MyISAM InnoDB
Высокая скорость при чтении + -
Транзакционность - +
Полнотекстовый поиск + 5.6+
Внешние ключи - +

MyISAM оптимизирован для таблиц, к которым активно обращаются на чтение и практически не обращаются на запись.

Если вам требуется транзакционность, используйте InnoDB, ведь он изначально проектировался с учетом поддержки транзакций. MyISAM напротив, не поддерживает транзакции.

Возможность полнотекстового поиска сейчас есть у обоих движков, но следует учитывать, что у MyISAM она была всегда, а у InnoDB появилась начиная с версии MySQL 5.6.

InnoDB — движок для полноценных реляционных баз данных с внешними ключами. В MyISAM вы можете забыть о целостности и связности данных. То, что в MyISAM нельзя оперировать со связями, я считаю его основным минусом, склоняясь тем самым в сторону InnoDB.

Таким образом, упрощенный обзор ключевых характеристик заставляет сделать вывод о том, что лучше по умолчанию использовать движок InnoDB. Если он в процессе тестирования чем-то не устроит, или его функционал покажется избыточным, то всегда можно на начальных этапах провести сравнительный бенчмаркинг на ваших данных и SQL-запросах, и перейти на другой движок, который показал в вашей ситуации себя лучше.

Sergey Lysenko, понедельник, 16 июня 2014 г.

Комментарии: