必要に応じて誰かが以前のテーブルを監査できるように、1つの実稼働テーブルから一時履歴ストア(10日間表示され、その後削除される)にデータをコピーしたいと思います。通常、私は次のようなものでこれを行います:
CREATE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;
ただし、ここではキー(プライマリ、外部、その他)は気にせず、データの挿入速度を最適化したいだけです。何が最善の方法でしょうか?私が考えていた方法は、それをInnoDBからMyISAMに変更してから、挿入を行うことでした。
CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ENGINE = MyISAM;
INSERT INTO new_table SELECT * FROM old_table
より速い方法はありますか?
この方法では、約100万行/ 1GBテーブルで約2分かかりました。
追加するとALTER TABLE new_table DISABLE KEYS;
:
そして CREATE TABLE new_table select * from old_table;
そして最速のもの(@nbkの回答の礼儀)、 Create table new_table ENGINE=MyISAM SELECT * FROM old_table;
すべてをコピーしますが、インデックスの 外部キーと主キーを失いますが、生き残ると考えるのはNULLではありません
Create table new_table SELECT * FROM old_table
Create table new_table3 ENGINE=MyISAM SELECT * FROM new_table
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加