私が使用して別の1つのテーブルの内容をコピーしようとしている:selectからMySQLの挿入を高速化するには?
INSERT INTO table1
SELECT * FROM table2
WHERE ...
約7万行があります。したがって、クエリは数時間実行される可能性があります。プロセスをスピードアップする方法はありますか?
私が使用して別の1つのテーブルの内容をコピーしようとしている:selectからMySQLの挿入を高速化するには?
INSERT INTO table1
SELECT * FROM table2
WHERE ...
約7万行があります。したがって、クエリは数時間実行される可能性があります。プロセスをスピードアップする方法はありますか?
スプリット通常通り、
が最初に取得し、次の挿入操作、これは読み取りのバランスをとり、ロックアウト時間内に操作し、DBロックを書き込みます。
合計実行時間は、現在の実行時間よりもはるかに短くなります。
は、必ず最初に設定し一時保管を行うレコードを取得し、それを挿入して、あなたの店の手続きや関数 でこれをやっていると思います。ストア・プロシージャを使用すると、データベース・メモリーを消費します。selectを使用して挿入すると、1つのスレッドで並列処理が可能になります。これにより、データベース操作が遅くなり、あいまいされます。詳細をご説明ください。 –
私の編集を見てください –
WHEREの列の索引を追加します。 –
table1は空ですか? – georgeos
@georgeosいいえ、テーブル1にはすでにいくつかの行があります –