2017-06-09 8 views
0

私が使用して別の1つのテーブルの内容をコピーしようとしている:selectからMySQLの挿入を高速化するには?

INSERT INTO table1 
SELECT * FROM table2 
WHERE ... 

約7万行があります。したがって、クエリは数時間実行される可能性があります。プロセスをスピードアップする方法はありますか?

+2

WHEREの列の索引を追加します。 –

+0

table1は空ですか? – georgeos

+0

@georgeosいいえ、テーブル1にはすでにいくつかの行があります –

答えて

-2

スプリット通常通り、

が最初に取得し、次の挿入操作、これは読み取りのバランスをとり、ロックアウト時間内に操作し、DBロックを書き込みます。

合計実行時間は、現在の実行時間よりもはるかに短くなります。

は、必ず最初に設定し一時保管を行うレコードを取得し、それを挿入して、あなたの店の手続きや関数

でこれをやっていると思います。ストア・プロシージャを使用すると、データベース・メモリーを消費します。selectを使用して挿入すると、1つのスレッドで並列処理が可能になります。これにより、データベース操作が遅くなり、あいまいされます。

+0

詳細をご説明ください。 –

+0

私の編集を見てください –

関連する問題