批量插入 1 万条数据,DB 查询构造器和原生 SQL 性能比较

因项目需要导入数据量较大的CSV到MYSQL数据库,发现导入很慢,因此对其进行了比较!

以10000条数据来作为样本测试,第一次不分批全部导入,DB查询构造器报错,提示占位符超过65000个,超出MYSQL处理上限;原生SQL导入正常:

成功导入10000行
导入用时7.0685548782349
内存使用:0.4242578125MB

然后分割成5000一批插入,DB查询构造器插入正常:

成功导入10000行
导入用时37.71401309967
内存使用:0.33146875MB

原生SQL导入:

成功导入10000行
导入用时32.702127933502
内存使用:0.4242578125MB

相差不大,因此,批量插入最好还是用原生SQL,不受占位符限制。

不知大家有什么更好的方法,批量插入大量数据到数据库呢?

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3

牛逼。我正好碰到了这种上限问题。mysql好像在检索的时候,超过255个占位符就报错了。不知道是不是有配置项可以修改

4年前 评论

在查询方面,SQL的原生语句是不是比查询构造器的性能更好。

4年前 评论

或者说,增、删、改用查询构造器来操作,查用原生语句来操作,这样可以更好?不知道大侠们怎么看?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!