1

ストアド プロシージャを作成しました。大量のデータ(約1L行)でカーソルをフェッチします。その後、その中で別のプロシージャを呼び出して、必要なデータに関連するすべての計算を行います。一時テーブルを作成し、この計算データを挿入しようとしました。しかし、時間がかかりすぎて約9.5分かかります。1L の挿入クエリがパフォーマンスを低下させるため、最小の "INSERT" クエリを使用してバルク データを挿入する方法を知りたいです。誰でも私を助けることができますか??

4

3 に答える 3

8

一括挿入には、次の SQL ステートメントを使用できます。

INSERT INTO TABLE_A (A, B, C, D) VALUES
(1,1,1,1),
(2,2,2,2),
(3,3,3,3),
(4,4,4,4);
于 2012-05-17T12:07:47.153 に答える
2

あなたの質問は少し曖昧ですが、次を使用してmysqlにデータを一括ロードできます

load data infile...

次のリンクを確認してください。

読み込み中にデータを処理する必要がある場合は、最初にデータを一時テーブルに一括読み込みし、それに対していくつかのストアド プロシージャを実行して、メイン テーブルを処理および設定することをお勧めします。

お役に立てれば。

于 2012-05-17T12:15:41.720 に答える
0

また、メモリ内のテーブルにレコードを挿入することもできます。メモリ内のテーブルに多くの行を挿入するためのコードに従って、メモリ内のテーブルに完全に挿入した後。

INSERT INTO TABLE_A (A, B, C, D)
SELECT A,B,C,D FROM INMEMORY_TABLE

DELETE FROM INMEMORY_TABLE
于 2012-05-17T13:56:59.230 に答える