2012-04-13 4 views
2

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

mysqldumpを使用してダンプを作成すると、挿入する前にテーブルを削除するので、読み込みアクセスはインポートが完了するまで失われます。

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

答えて

1

テーブルが同じ構造であれば、問題はありません。 "DROP TABLE"演算子をスキップするだけでいいです。ほとんどすべてのダンプは、DROP TABLE/CREATE TABLEをダンプに含めないことを選択できます。個人的にはSypex Dumperをお勧めします。

あなたがテーブルをロックせずにテーブル構造を変更したい場合は、私は最善の方法は、 pt-online-schema-change - ALTER tables without locking them

+0

感謝のためのMySQLエンタープライズバックアップを使用を使用することです、私はSypexダンパーとのベンチマークを実行すると思います。 10ドルで間違って行くことはできません! – melkamo

+1

@melkamo無料版があります。ほとんどのニーズには十分です。 –

関連する問題