В MySQL 8.0 отмечается закат хранилища MyISAM

2016-10-13

В находящейся в разработке ветке CУБД MySQL 8.0 (версия 8.0 будет выпущена следом за 5.7, вместо 5.8) представлены изменения, ограничивающие использование хранилища MyISAM. Поддержка MyISAM пока сохраняется, но использование данного хранилища в самом MySQL практически прекращено. В частности, после реализации в MySQL 8.0 нового механизма хранения системных данных, таблицы MyISAM больше не используются для хранения системной схемы (БД mysql) и теперь невозможно просто скопировать таблицы MyISAM на работающий сервер MySQL (скопированные таблицы не будут определены, в отличие от таблиц InnoDB, для которых можно выполнить "ALTER TABLE … IMPORT TABLESPACE"). Возможность создания таблиц с опцией "engine=MyISAM" сохранена.

Ранее хранилище MyISAM предоставляло поддержку ряда возможностей, отсутствующих в InnoDB, но в ветках MySQL 5.6 и 5.7 функциональность была выравнена и в InnoDB появились такие функции как полнотекстовые индексы, табличные пространства, пространственные индексы (RTREE), отслеживание последнего обновления, пригодность для временных таблиц и ускорение работы функции "count(*)". До сих пор оплотом MyISAM было использование данного хранилища для системных таблиц, но в MySQL 8.0 системное хранилище было переведено с MyISAM. Таким образом, не осталось препятствий для воплощение в жизнь предложения по переводу MyISAM в разряд опциональных хранилищ, подключаемых при необходимости в форме плагина. Из достоинств MyISAM остаётся более компактное хранение данных на диске в несжатом виде и значительный выигрыш в производительности выполнения операции count(*).