2

MySQL プラットフォームで次の SQL クエリを実行します。

テーブル A は、1 つの列 (主キー) と 25K 行を持つテーブルです。テーブル B には、いくつかの列と 75K 行があります。

次のクエリの実行には 20 分かかります。お役に立てれば幸いです。

INSERT INTO sometable
SELECT A.PrimaryKeyColumn as keyword, 'SomeText', B.*
FROM A, B
WHERE B.PrimaryKeyColumn = CONCAT(A.PrimaryKeyColumn, B.NotUniqueButIndexedColumn);
4

2 に答える 2

5

を実行せSELECTずにINSERTを実行して、問題が にあるかどうかを確認しますSELECT

を使用している場合は、MySQL のドキュメントSELECTに従って、 を使用してクエリを最適化する方法を説明してEXPLAINください。

が正常にSELECT実行されても、INSERT永遠に時間がかかる場合は、 に不要なインデックスが多くないことを確認してくださいsometable。さらに、MySQL のチューニングや OS のチューニング (メモリやディスクのパフォーマンスなど) を実行して、INSERT.

于 2011-12-25T00:53:48.760 に答える
0

私が正しく理解できれば、おおよそ 1.875 Billion レコードを挿入しようとしています (これは where 句と一致しません)。

その20分間は、それほど悪くはありません....

于 2011-12-25T20:40:54.680 に答える