Экспорт / импорт баз данных быстрее, чем сейчас

0

У меня есть база данных (MYSQL), которая экспортируется таким образом:

echo "Dump structure"
mysqldump -S /path/db.sock --user = $ {USER} --password = $ {PASSWORD} --single-transaction --no-data $ {DATABASE}> $ {DB_FILE}

echo "Dump content"
mysqldump -S /path/db.sock --user = $ {USER} --password = $ {PASSWORD} $ {DATABASE} --no-create-info $ {IGNORED_TABLES_STRING} >> $ {DB_FILE}

То, что он делает, это экспортировать структуру некоторых игнорируемых таблиц и содержимого других. Это делается для того, чтобы база данных занимала меньше места.

Я не уверен, есть ли более оптимальные способы сделать это.

Мой вопрос таков:

В "Дамп-контенте" я хотел бы просто взять последние 1000 результатов, чтобы уменьшить его содержимое, но проблема в том, что не все таблицы связаны или содержат одно и то же поле для их фильтрации.

Как фильтровать последние записи, если я не могу сделать это для одного поля? Можно ли быстрее или быстрее экспортировать/импортировать базу данных?

  • 0
    Пожалуйста, посмотрите на помощь в редактировании .
  • 1
    MySQLdump не поддерживает это (вы можете добавить фильтр where, который не поддерживает ни «последние x строк», ни неопределенные имена столбцов). Вы можете написать для этого простой скрипт, например, запустить mysqldump один раз для каждой таблицы и добавить условие where которое вы сначала вычисляете, с некоторыми соображениями о внешних ключах и вашими знаниями о том, как идентифицировать последние n строк таблицы x. Или обратитесь за помощью к сценарию или инструменту, которые уже (частично) это делают, хотя адаптировать их к вашим потребностям не обязательно проще, чем написать их самостоятельно (и они принадлежат, если вообще будут, на dba.stackoverflow.com)
Теги:
import

1 ответ

0

Короткий ответ: вы не можете этого сделать.

Длинный ответ: вы можете сделать выбор с помощью "LIMIT 1000", например, и записать это в файлы. Но какова бы ни была ваша причина, я настоятельно рекомендую вам не делать этого. Если вы хотите сделать резервную копию всего, сделайте полную резервную копию. Если вы хотите быстро сохранить базу данных, не беспокойтесь об этом и узнайте, как использовать индексы. Если вы хотите сделать это только для того, чтобы держать его хорошо организованным и избавиться от данных, которые вам больше не нужны, просто держите их в базе данных, потому что они не навредят. Если вы хотите синхронизировать данные с другой базой данных, настройте репликацию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню