Отличие MyISAM от InnoDB

  • 07 августа 2017
  • 1237
0%

Помогло?

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

Предлагаю рассмотреть следующую таблицу, а лучше даже ее выучить.

Описание MyISAM InnoDB
Поддержка транзакций нет да
Поддержка внешних ключей нет да
Блокировка Блокировка на уровне таблиц Блокировка на уровне строк
Одновременные запросы к разным частям таблицы Медленнее Быстрее
При смешанной нагрузке в таблице (select/update/delete/insert) Медленнее Быстрее
Операция Insert Быстрее Медленнее, ибо есть оверхед на транзакцию, но это цена надежности
Если преобладают операции чтения (SELECT) Работает быстрее Работает медленнее
Ситуации Deadlock Не возникают Возможны.
Поддержка полнотекстового поиска Да Нет (доступен начиная с версии MySQL 5.6.4)
Запрос Count(*) Быстрее Медленнее
Поддержка mysqlhotcopy Да Нет
Файловое хранение таблиц Каждой таблице отдельный файл Данные при настройках по умолчанию хранятся в больших совместно используемых файлах
Бинарное копировании таблиц? Да Нет
Размер таблиц в БД Меньше Больше
Поведение в случае сбоя Крашится вся таблица По логам можно все восстановить
В случае хранения «логов» и подобного Лучше Хуже

 

Облако тегов

Следующая статья

Транзакции

Транзакция - операция, которая содержит в себе один или несколько запросов к БД. Цель транзакций - выполнить все запросы к базе, а если что-то не выполняется, то не засчитывать предыдущие запросы. Также в транзакции входит механизм изоляции, который позволяет решать проблемы при совместном доступе к данным. Запомните основное правило транзакций: "Либо она выполняется полностью, либо не выполняется совсем". Существует 2 фундаментальных понятия: ROLLBACK и COMMIT. 

Сообщения: (0)

?
Публикуя сообщение, вы соглашаетесь с пользовательским соглашением

Читайте также