Вы можете отфильтровать операторы CREATE TABLE, чтобы они создавали сжатые таблицы при восстановлении:
sed -e 's/ENGINE=InnoDB/& ROW_FORMAT=COMPRESSED/' dump.sql | mysql ...
Другая идея состоит в том, чтобы отбросить некоторые или все индексы в больших таблицах перед восстановлением данных.Вставьте операторы ALTER TABLE <tablename> DROP KEY <indexname>;
после CREATE TABLE и перед последующими операторами INSERT.
Даже если позднее вы решите, что вам нужны индексы, создание индекса после загрузки данных часто приводит к более компактному индексу.
Удаление индексов может повлиять на производительность некоторыхваши запросы, которым нужны эти индексы.Но если важнее сделать базу данных меньше, то вам решать, насколько вы жертвуете производительностью запросов.
Я оставлю вам задачу выяснить, как вы хотите отредактировать файл объемом 42 ГБ.Существуют различные решения в зависимости от вашей среды (Mac, Windows, Linux).