Как заставить mysqldump создавать индексы после загрузки данных?

Цель - перенести огромную бд (mysql innodb (1-2 сотни гигабайт)) на новый сервер.
Т. к. на старом сервере mysql 5.6, а на новом MariaDB, то использовать percona xtraBacup не получится, насколько я понимаю. Поэтому, думаю, можно попробовать использовать mysqldump

Когда mysqldump создает dump таблицы, то вначале создаются инструкции по созданию структуры таблицы с индексами, а потом по вставке данных. Можно ли изменить порядок на:

Создание структуры таблицы без индексов,
Вставка данных,
Создание индексов?

Если создавать таблицы с данными, а потом проставлять индексы - так будет значительно быстрее, особенно на данных большого размера. В мануале нашел решение только для MyIsam, для innoDB не нашел решения.
Заранее спасибо.
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 2
xpert13
@xpert13
Full Stack Developer
Я вас огорчу, но по всей видимости так нельзя:
Keep in mind also that MyISAM keeps data and indexes in two separate files (.MYD for data, .MYI for indexes), so it would be trivial to disable and enable indexes. InnoDB keeps the PRIMARY KEY and row data in the same InnoDB pages (via the Clustered Index). Secondary indexes will carry the PRIMARY KEY as an attachment to every secondary index leaf entry. Since the data and indexes are intertwined via the Clustered Index, no one has, as of yet, attempted to implement DISABLE KEYS and ENABLE KEYS in InnoDB.

(с) https://dba.stackexchange.com/a/76590
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
если чо, метода конвертов инно - маисам - бэкапшухрымухры - майисам - инно вполне рабочая

если, конечно, хватит терпения с гигабайтами
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы