- Установка большого размера innodb_buffer_pool_size (2 ГБ или более)
- предварительно прочитайте ваши старые файлы данных / индексов myisam с помощью команд оболочки
- увеличение innodb_log_file_size (256 МБ)
- Измените таблицу в параллельных потоках X, где X - количество ядер ЦП на вашем сервере
- другие незначительные изменения только для преобразования (innodb_doublewrite = 0, innodb_flush_log_at_trx_commit = 0)
Установка innodb_buffer_pool_size как можно выше - это типичный способ ускорить создание таблиц innodb - ваш набор данных выглядит так, как будто он может вписаться в буферный пул innodb 2 ГБ, поэтому любой порядочный 64-битный сервер должен это допустить. alter table type = innodb также быстрее, чем решение dump + reimport, и его легко запустить параллельно.
Также убедитесь, что вы увеличили значение innodb_log_file_size по умолчанию с 5 МБ до 128 или 256 МБ. Осторожнее с этим, и он нуждается в чистом завершении работы + удаление старого файла ib_logfile *.
Если на вашем сервере есть что-то вроде 8 ГБ оперативной памяти, и вы используете 64-битную версию mysql, я бы предложил 2 ГБ innodb_buffer_pool, и вы даже можете предварительно прочитать старые файлы MYD и MYI перед закрытием для простоя, чтобы они могли быть в кеше страницы ОС, когда начнется настоящая работа.
Если вы также пойдете на незначительные изменения, имейте в виду, что вам нужно отменить их после преобразования (еще одно небольшое время простоя), чтобы ваши данные были в безопасности, хотя я сомневаюсь, что они того стоят для такого небольшого набора данных.
Удачи.