我即将插入365个插入记录,我想知道哪个更好。
1)逐个插入1000个插入查询(对于每个记录)
2)插入
insert into table name ('field1', 'field2') values (value,value),(value,value),(value,value),(value,value)
我希望第二个执行速度更快,并且有用。
答案 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
由于这个原因,多次插入会快得多,因为它只会产生Connecting
,Sending query to server
,Parsing query
,Closing
开销一次。这也在手册中显示:
- 如果要同时从同一客户端插入多行,请使用包含多个VALUES列表的INSERT语句进行插入 一次几行。这要快得多(很多次 在某些情况下比使用单独的单行INSERT更快 声明。如果要将数据添加到非空表,则可以进行调整 bulk_insert_buffer_size变量使数据插入均匀 快点。见Section 5.1.4, “Server System Variables”。
答案 1 :(得分:0)
创建批处理并插入数据会更好,因为不会为每个INSERT语句命中数据库(如果单独插入每个记录)。