0

目前我正在使用准备好的语句在数据库上执行查询或更新。虽然是预编译的(因此速度很快),但我认为如果可以有这样的安排,它会更有效率:

设想:

假设我必须在数据库表中插入 100 行。我使用准备语句,因此我准备了一条语句并将其发送到数据库以执行。所以每次查询的形式是:

insert into user values(....);

现在在我查询表单时考虑这种情况

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

通过这种方式,我们可以最大限度地减少表访问并一次性执行查询。

有什么方法可以使用准备好的语句或这样的安排来执行此操作,我们可以指示数据库一起执行接下来的 100 次更新。顺便说一句,我目前正在研究 mysql

4

2 回答 2

0

有什么理由不将其作为批量插入操作吗?

可能有更好的方法,但我只是将“文件”写入 /dev/shm 然后在 LOAD DATA INFILE 语句中引用,因此永远不会在客户端计算机上敲击磁盘。

于 2012-06-01T16:53:27.363 回答
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 回答