Типы таблиц в MySQL -- отличия (в т.ч. ISAM, MyISAM, MERGE, HEAP, BDB, InnoDB)

Forums:

Из книги Иванчевой Т. А.:

СУБД MySQL поддерживает (/поддерживала) несколько типов таблиц: ISAM, MyISAM, MERGE, HEAP, BDB, InnoDB.

ISAM

Таблицы ISAM являются устаревшими.

MyISAM

Сейчас используются таблицы MyISAM(они используются по умолчанию).

Они позволяют:

  • Поддерживать больший объем таблиц.
  • Содержимое таблицы хранится в формате, не зависящем от
  • платформы.
  • Более эффективно работать с индексами и атрибутом auto-increment.
  • Более эффективно организована поддержка целостности таблицы.
  • Поддерживается полнотекстовый поиск с использованием индекса FULLTEXT -- за это их и любят.

Движок MERGE

Таблицы MERGE – предназначены для объединения нескольких таблиц в одну.
Причем с помощью одного запроса можно обращаться ко всем таблицам, входящим в состав единой таблицы.

Движок HEAP

Таблицы HEAP– это временные таблица, предназначенные для
хранения в оперативной памяти. Для повышения эффективности
в них применяют только строки фиксированной длины.

Движок BDB

Таблицы BDB– поддерживаются дескриптором Berkeley DB,
разработанный компанией Sleepycat.

Дескриптор обеспечивает:

  • Обработку таблиц с использованием транзакций.
  • Автоматическое восстановление после сбоев.
  • Блокирование на уровне страниц, обеспечивающее хорошую производительность при обработке параллельных запросов.

Движок InnoDB

Таблицы InnoDB– самые новые таблицы недавно введенные
в MySQL. Этот тип поддерживается дескриптором InnoDB,
разработанным компанией Innobase Oy.

Обеспечивает:

  • Обработку таблиц с использованием транзакций.
  • Автоматическое восстановление после сбоев.
  • Поддержка ключей, в том числе и каскадного удаления.
  • Блокирование на уровне страниц, обеспечивающее хорошую производительность при обработке параллельных запросов.
  • Таблицы могут быть распределены по нескольким файлам