Какой самый быстрый способ экспортировать/импортировать базу данных mysql, используя таблицы innodb?Какой самый быстрый способ импортировать большую резервную копию базы данных mysql?
У меня есть производственная база данных, которую мне периодически нужно загрузить на мою машину разработки, чтобы отлаживать проблемы клиентов. То, как мы сейчас это делаем, - это загрузить наши регулярные резервные копии баз данных, которые генерируются с использованием «mysql -B dbname», а затем gzipped. Затем мы импортируем их с помощью «gunzip -c backup.gz | mysql -u root».
Из того, что я могу сказать, прочитав «mysqldump --help», mysqldump запускает wtih -opt по умолчанию, который выглядит так, будто он включает кучу вещей, которые я могу думать об этом, что сделает импорт быстрее, как отключение индексов и импорт таблиц как один массивный оператор импорта.
Есть ли лучшие способы для этого или дальнейшие оптимизации, которые мы должны делать?
Примечание: Я в основном хочу оптимизировать время, необходимое для загрузки базы данных на мою машину разработки (относительно недавний macbook pro, с большим количеством бара). Время резервного копирования и время передачи по сети в настоящее время не являются большими проблемами.
Update:
Чтобы ответить на некоторые вопросы, заданные в ответах:
Схема базы данных производства изменяется до пару раз в неделю. Мы используем рельсы, поэтому относительно легко запускать скрипты переноса на устаревших данных о производстве.
Мы должны помещать производственные данные в среду разработки потенциально ежедневно или ежечасно. Это полностью зависит от того, над чем работает разработчик. У нас часто возникают конкретные проблемы с клиентами, которые являются результатом распространения данных по нескольким таблицам в db, которые необходимо отлаживать в среде разработки.
Я честно не знаю, сколько времени занимает mysqldump. Менее 2 часов, так как мы в настоящее время запускаем его каждые 2 часа. Однако это не то, что мы пытаемся оптимизировать, мы хотим оптимизировать импорт на рабочую станцию разработчика.
Нам не нужна полная производственная база данных, но не совсем тривиально отделять то, что мы делаем и не нуждаемся (существует множество таблиц с отношениями внешнего ключа). Скорее всего, нам придется идти в конце концов, но мы бы хотели избежать этого немного дольше, если можем.
Я ответил на ваши вопросы как редактирование на мой вопрос. Вы делаете хорошие моменты. Я не отказался от mysqldump, я больше задаюсь вопросом, есть ли способ оптимизировать его, помимо использования значений по умолчанию, учитывая мою ситуацию (оптимизация скорости импорта). –