Рекомендации: перенос миллионов записей в другую базу данных MySQL - PullRequest
1 голос
/ 13 февраля 2012

Мне поручено следующее задание:

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

По сути, была создана новая база данных с другой структурой таблиц, и мне нужно (после подтверждения совпадения всех типов данных) написать сценарий для копирования данных в правильную таблицу / столбец.

В конечном счете, я задумался о такой масштабной передаче данных: есть ли какие-нибудь передовые практики, предпочтительные языки или советы / подсказки, которые кто-то может дать?

1 Ответ

1 голос
/ 13 февраля 2012

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

Тем не менее, я могу посоветовать несколько практик, которые, я думаю, могут быть полезны для такой задачи.

  1. Возьмите все данные с вашего производственного сервера и поместите их в devbox, который полностью и полностью разделен. Отмените риск для ваших исходных данных, а также влияние на производительность сервера.
  2. Оказавшись на строго разработанной платформе, я бы порекомендовал, если это вообще возможно, сохранить все ваши данные в движении от SQL к SQL, а не писать сценарии на каком-то промежуточном языке. Конечно, ваша новая структура может полностью запрещать подобный подход, но в целом приходится беспокоиться о переносе данных со строгого, надежного типа данных на другой язык (например, PHP без типа или со строгим типом .net) обратно на база данных добавляет ряд шагов, которые усложняют вашу задачу, добавляют вычислительные часы и потенциально необузданные потери.
  3. Потратьте столько времени на проверку интеллекта новой схемы проектирования, сколько у вас есть время и силы для этого. Если ваши руки не связаны, попробуйте визуализировать, действительно ли изменения - это улучшения - и что неизбежные переписывания запросов повышают эффективность и удобочитаемость.

Я уверен, что есть ряд других вещей, на которые стоит обратить внимание, но я надеюсь, что они достаточно полезны, чтобы помочь вам перейти от одной схемы к другой. Не увлекайтесь удаленными серверами, если вероятен локальный, а затем импортируйте. Сохраняйте это простым!

...