0

現在、準備済みステートメントを使用して、データベースでクエリまたは更新を実行しています。コンパイル済み(したがって高速)ですが、そのような配置ができればさらに効率的だと思います:

シナリオ:

データベース テーブルに 100 行を挿入する必要があるとします。準備ステートメントを使用するので、ステートメントを準備し、データベースに送信して実行します。したがって、クエリが次の形式になるたびに:

insert into user values(....);

フォームのクエリがある場合、この状況を考えてみましょう

insert into user values (...), (...), ....,(...);

これにより、テーブルへのアクセスを最小限に抑え、クエリを一度に実行できます。

準備されたステートメントまたは次の100回の更新を一緒に実行するようにデータベースに指示できるような取り決めを使用してこれを行う方法はありますか? ちなみに、私は現在mysqlに取り組んでいます

4

2 に答える 2

0

VALUES 構文を使用する INSERT ステートメントは、複数の行を挿入できます。これを行うには、列値の複数のリストを含め、それぞれを括弧で囲み、カンマで区切ります。例:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

次のようなものを試してください

st = con.createStatement();
  st.addBatch("INSERT INTO tbl_name VALUES(1,2,3)");
  st.addBatch("INSERT INTO tbl_name VALUES(4,5,6)");
  st.addBatch("INSERT INTO tbl_name VALUES(7,8,9)");
  st.executeBatch();
于 2012-06-01T17:05:43.823 に答える
0

一括挿入操作として実行しない理由はありますか?

おそらくもっと良い方法がありますが、単に「ファイル」を /dev/shm に書き込み、LOAD DATA INFILE ステートメントで参照するだけなので、クライアント マシンのディスクにヒットすることはありません。

于 2012-06-01T16:53:27.363 に答える