У меня около 84 миллионов строк. Из них все они должны быть перенесены в отдельную базу данных на одном сервере, затем я удаляю, чтобы удалить около 60 миллионов строк из исходной базы данных.
84 миллиона строк находятся в одной таблице. Одна только эта таблица составляет 90% всей базы данных.
Итак ... Источник: 84 миллиона строк -> 24 миллиона строк Назначение: 0 строк -> 84 миллиона строк
Источник работает в режиме полного восстановления, пункт назначения будет работать просто.
Мне интересно, что было бы наиболее эффективным способом сделать это?
План А:
1) ВСТАВИТЬ В НАЗНАЧЕНИЕ ВЫБРАТЬ * ОТ источника
2) источник TRUNCATE
3) INSERT INTO source SELECT * FROM destination WHERE keep_condition = 1
План B:
1) Восстановите резервную копию исходной базы данных в качестве целевой базы данных.
2) Удалите все таблицы, кроме той, которая нужна в целевой базе данных.
3) источник TRUNCATE
4) INSERT INTO source SELECT * FROM destination WHERE keep_condition = 1
План C:
1) ВСТАВИТЬ В НАЗНАЧЕНИЕ ВЫБРАТЬ * ОТ источника
2) УДАЛИТЬ источник, ГДЕ keep_condition = 0
или что-то другое?
Спасибо