何百万もの行を MySQL データベース (InnoDB エンジン) に挿入する必要があります。テーブルのサイズが大きい場合、時間に問題があります。ほとんどすべての時間が挿入クエリに費やされます。多分誰かがそれを最適化する方法を知っていますか?
質問する
7979 次
2 に答える
18
大量のデータを InnoDB にインポートするには:
MySQL構成で設定
- innodb_doublewrite = 0
- innodb_buffer_pool_size = 50%+ システムメモリ
- innodb_log_file_size = 512M
- ログビン = 0
- innodb_support_xa = 0
- innodb_flush_log_at_trx_commit = 0
トランザクション開始直後に追加:
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
オートコミットを設定 = 0;
トランザクション終了直前に設定:
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
于 2012-08-10T15:53:11.770 に答える
0
多数のINSERT
ステートメントについて話している場合は、トランザクションと呼ばれるものを調べてください。SQLを実行するほとんどの(すべてではないにしても)言語がトランザクションをサポートしていることは間違いありません。DBへの書き込みに関連するすべての処理を高速化します。追加のボーナスは、何か問題が発生した場合に変更をロールバックできることです。
于 2012-08-10T15:27:01.180 に答える