繁体   English   中英

执行多个插入查询

[英]Executing multiple insert queries

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

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

2)插入像

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

我希望第二个执行得更快,并且它会有用。

根据MySQL INSERT计划,我们有以下问题花费时间:

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

因此,多次插入会更快,因为它会产生ConnectingSending query to serverParsing query ,仅Closing开销一次。 这也在手册中显示:

  • 如果要同时从同一客户端插入多行,请使用带有多个VALUES列表的INSERT语句一次插入多行。 与使用单独的单行INSERT语句相比,这要快得多(在某些情况下要快很多倍)。 如果要将数据添加到非空表,则可以调整bulk_insert_buffer_size变量以使数据插入更快。 请参见第5.1.4节“服务器系统变量”

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM