Уменьшите размер базы данных (mysqldump) перед восстановлением - PullRequest
0 голосов
/ 28 мая 2018

У меня есть mysqldump 42 ГБ в моей базе данных (который похож на 100 ГБ).Я искал в Интернете, есть ли какой-нибудь способ уменьшить размер диска базы данных, я имею в виду, что после восстановления дампа я хочу уменьшить размер диска с 100 до 87-90 ГБ.Я еще не нашел соответствующей информации.

Буду признателен, если кто-нибудь подскажет мне немного об этом.

Спасибо

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете отфильтровать операторы 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...