2

既存のテーブルへの読み取りアクセスを失うことなく、テーブルが既に存在する場合に InnoDB エンジンを使用して MySQL テーブルをインポートするには、どのようなオプションがありますか? 一般的に、 が非常に遅い状況を指してALTER TABLEいます。代わりに、テーブルをダンプし、ダンプを変更してからインポートしたいと考えています。

ダンプを作成するために使用mysqldumpした場合、再挿入すると、挿入する前にテーブルが削除されるため、インポートが完了するまで読み取りアクセスはもちろん失われます。

ダンプ内のテーブル名を変更してインポートし、それが完了したら、古いテーブルを削除して新しいテーブルの名前を変更できますか? より良い方法はありますか?前もって感謝します。

4

2 に答える 2

2

テーブルが同じ構造である場合、問題はありません。「DROP TABLE」演算子をスキップするだけです。ほとんどすべてのダンパーには、ダンプに DROP TABLE/CREATE TABLE を含めないオプションがあります。個人的にはSypex Dumperをお勧めします。

テーブルをロックせずにテーブル構造を変更したい場合は、ロックせずにpt-online-schema-change - ALTER テーブルを使用するのが最善の方法だと思い ます

于 2012-04-13T11:03:53.920 に答える
1

このhttp://www.mysql.com/products/enterprise/backup.htmlには MySQL Enterprise バックアップを使用します。

于 2012-04-13T11:14:14.860 に答える