一起执行查询以提高效率

时间:2012-06-01 16:40:06

标签: mysql database jdbc

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

情景:

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

insert into user values(....);

现在,当我查询表格

时,请考虑这种情况
insert into user values (...), (...), ....,(...);

通过这种方式,我们可以一次性最小化表访问和执行查询。

我们是否可以使用预先准备好的语句或这样的安排来执行此操作,我们可以指示数据库一起执行下100个更新。顺便说一句,我目前正在研究mysql

2 个答案:

答案 0 :(得分:0)

有什么理由不将其作为bulk insert操作吗?

可能有更好的方法,但我只是将一个“文件”写入/ dev / shm,然后在LOAD DATA INFILE语句中引用,从而不会在客户端计算机上访问磁盘。

答案 1 :(得分: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();