У меня есть база данных (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 результатов, чтобы уменьшить его содержимое, но проблема в том, что не все таблицы связаны или содержат одно и то же поле для их фильтрации.
Как фильтровать последние записи, если я не могу сделать это для одного поля? Можно ли быстрее или быстрее экспортировать/импортировать базу данных?
Короткий ответ: вы не можете этого сделать.
Длинный ответ: вы можете сделать выбор с помощью "LIMIT 1000", например, и записать это в файлы. Но какова бы ни была ваша причина, я настоятельно рекомендую вам не делать этого. Если вы хотите сделать резервную копию всего, сделайте полную резервную копию. Если вы хотите быстро сохранить базу данных, не беспокойтесь об этом и узнайте, как использовать индексы. Если вы хотите сделать это только для того, чтобы держать его хорошо организованным и избавиться от данных, которые вам больше не нужны, просто держите их в базе данных, потому что они не навредят. Если вы хотите синхронизировать данные с другой базой данных, настройте репликацию.
where
которое вы сначала вычисляете, с некоторыми соображениями о внешних ключах и вашими знаниями о том, как идентифицировать последние n строк таблицы x. Или обратитесь за помощью к сценарию или инструменту, которые уже (частично) это делают, хотя адаптировать их к вашим потребностям не обязательно проще, чем написать их самостоятельно (и они принадлежат, если вообще будут, на dba.stackoverflow.com)