[英]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
因此,多次插入会更快,因为它会产生Connecting
, Sending query to server
, Parsing query
,仅Closing
开销一次。 这也在手册中显示:
- 如果要同时从同一客户端插入多行,请使用带有多个VALUES列表的INSERT语句一次插入多行。 与使用单独的单行INSERT语句相比,这要快得多(在某些情况下要快很多倍)。 如果要将数据添加到非空表,则可以调整bulk_insert_buffer_size变量以使数据插入更快。 请参见第5.1.4节“服务器系统变量” 。
创建批处理和插入数据会更好,因为不会为每个INSERT语句命中数据库(如果单独插入每个记录)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.