約8400万行あります。それらのすべてを同じサーバー上の別のデータベースに転送する必要があるので、ソースデータベースから約6000万行を削除するために削除します。
8,400万行はすべて同じテーブルにあります。そのテーブルだけでデータベース全体の90%を占めています。
つまり...ソース:8,400万行-> 2,400万行宛先:0行-> 8,400万行
ソースは完全復旧モードを実行しており、デスティネーションは単純に実行されます。
これを行う最も効率的な方法は何でしょうか?
プランA:
1)挿入先に選択SELECT * FROMソース
2)切り捨てソース
3)ソースSELECT * FROM宛先WHERE keep_condition = 1に挿入
次の手段:
1)ソースデータベースのバックアップを宛先データベースとして復元します
2)宛先データベースで必要なテーブルを除くすべてのテーブルを削除します
3)TRUNCATEソース
4)INSERT INTO source SELECT * FROM destination WHERE keep_condition = 1に挿入します
プランC:
1)挿入先に選択SELECT * FROMソース
2)DELETEソースWHERE keep_condition = 0
または、他の何か?
ありがとう