执行多个插入查询

时间:2013-09-04 06:19:29

标签: mysql sql

我即将插入365个插入记录,我想知道哪个更好。

1)逐个插入1000个插入查询(对于每个记录)

2)插入

insert into table name ('field1', 'field2') values (value,value),(value,value),(value,value),(value,value)

我希望第二个执行速度更快,并且有用。

2 个答案:

答案 0 :(得分:4)

根据MySQL INSERT plan,我们有以下问题需要花费时间:

- Connecting
- Sending query to server
- Parsing query 
- Inserting row (1 × size of row)
- Inserting indexes: (1 × number of indexes)
- Closing

由于这个原因,多次插入会快得多,因为它只会产生ConnectingSending query to serverParsing queryClosing开销一次。这也在手册中显示:

  
      
  • 如果要同时从同一客户端插入多行,请使用包含多个VALUES列表的INSERT语句进行插入   一次几行。这要快得多(很多次   在某些情况下比使用单独的单行INSERT更快   声明。如果要将数据添加到非空表,则可以进行调整   bulk_insert_buffer_size变量使数据插入均匀   快点。见Section 5.1.4, “Server System Variables”
  •   

答案 1 :(得分:0)

创建批处理并插入数据会更好,因为不会为每个INSERT语句命中数据库(如果单独插入每个记录)。