私はMySQL v5.6を使用しています。データ読み込み後のインデックス作成InFile
新しく作成したテーブル(InnoDB)に約10百万行を挿入します。私は、 "Load Data InFile"と複数の挿入の間でこれを行う最善の方法を選択しようとしています。
は、LOAD DATA INFILEはなる(とある)、より効率的に、私は奇妙なことを観察していなければならない:インデックス作成がはるかに長い「は、LOAD DATA INFILE」を使用した場合(15%)である...
それを観察するステップ(以前はすべて完了したとき、各ステップが始まる):
- 私は新しいテーブル(のtable_1)
- を作成し、私は新しいテーブル(table_2)
- を作成し、私は10万行を挿入複数の挿入を持つtable_1(バッチ5,000)
- 私は私がtable_2に(ALTER TABLEで)一度に4つのインデックスを作成するのtable_1
- に(ALTER TABLEで)一度に4つの索引を作成
- INFILE負荷データとtable_2で10万行を挿入 - について>前のステップよりも15%長くなりました。
これは何が説明できるのでしょうか?
(もちろん、結果は注文の手順と同じです2、1、4、3、6、5)
良いです。ステップの順序を変更するなどして、いくつかの変数を削除しました。その他の質問:レコードは同じ順序ですか? 'PRIMARY KEY'はすでに確立されていましたか? 'AUTO_INCREMENT'または自然? Naturalの場合は、順番にレコードがありますか? 4つのADD INDEX句を持つ1つのALTER? –