Копирование базы данных с или без индексации? - PullRequest
1 голос
/ 02 февраля 2011

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

Они начали миграцию данных вчера около обеда. Это все еще продолжается, и они говорят, что это займет еще 30 часов. Это довольно большой сайт (700 миллионов записей переходят с SQL Server на MySQL), но я не мог понять, почему это заняло так много времени.

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

1 Ответ

0 голосов
/ 02 февраля 2011

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

Погуглив минуту поднял это для тебя изо рта лошади :):

http://www.mysql.com/why-mysql/white-papers/mysql_microsoftsql2mysql_paper.pdf

см. Например страница 5:

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

Я не нашел эталон, но вы могли бы самостоятельно создать очень репрезентативный: просто перенесите, скажем, 1 миллион ваших собственных записей, используя обе стратегии. Результаты должны говорить сами за себя.

Вот связанный вопрос .

...