探索sql合并插入+事务性能问题

liyuzhao7年前学习记录2618

探索sql合并插入+事务性能问题

准备:

1:为了方便默认用thinkphp5框架来测试,直接下载官方的thinkphp5框架,部署到本地的环境,开启debug调试来追踪sql语句。

2:新建一个表为test,只有4个字段,分别为id、name、sex、value,id为主键。

 

 

测试:

用thinkphp自带的批量插入方法insertAll,该方法的原理就是合并插入,类似:

INSERT INTO `insert_table` ( `name`, `sex`, `value`) VALUES ('test',1,’test’), ('test',1,’test’), ('test',1,’test’), ('test',1,’test’);

 

首先插入100、1000、10000、100000、300000条数据

条数(单位:s)

合并插入

合并插入+事务

100

0.002750s

0.001528s

1000

0.011679s

0.030061s

10000

0.093928s

0.045280s

100000

0.468550s 

0.321440s

300000

1.854797s 1.711388s   1.998891s

平均:1.8550253s

1.728942s   1.704502s 1.758191s

平均:1.730545s

分十次提交事务,每次3W:

平均秒:0.915599s
分六次提交事务,每次5W
平均秒:0.987794s
分三十次提交事务,每次1W
平均秒:0.883966s

综上所述,采用合并插入+事务提交(每次1W左右的数据)速度最快,当然测试有点局限性,如果有错,欢迎留言提出。

相关文章

探讨mysql编程形参的in,out,inout型

探讨mysql编程形参的in,out,inout型

mysql的形参可以传入数值,也可以传入变量,下面来探讨一下:先探讨in和out型:delimiter $create procedure p2(in a int , out b int)begind...

centos7.4 安装lnmp

centos7.4 安装lnmp

最近购买了两天云服务器,所以环境需要重新配置下。采用php7.2+nginx+mysql5.7 .安装步骤:yum的安装?1yum updateyum安装nginx安装nginx最新源?12yum l...

session和cookie原理透彻分析

一直以来对session和cookie这个两个的原来有点不明确。上次去公司面试的时候就有这个面试题,心里一直都想搞清楚这两个的原理,但是一直没有好的理解,所幸今晚翻了以前看十八哥的视频,非常透彻的讲解...

探讨mysql的权限问题

不管是本地连接数据库还是远程连接数据库,要想连接成功必须要有四样:1:host   –>连接地址2:user  –>连接账号3:password  –>...

数据库实现1+到N得出总和的编程

数据库实现1+到N得出总和的编程

delimiter $    //这个是把结束符号变为$create procedure p1(N int)begindeclare total int default 0;dec...

数据库的for each row定义

在mysql中,for each row 是定义行级触发器的语句,如果不写是错误的,因为mysql还没有支持语句触发器。在oracle中,如果不写默认为语句触发器,就是不管执行多少次,都只触发一次语句...

评论列表

11111
2024-08-08 02:53:36

识别码:ijomab40259RH-这游戏真不错!http://www.dnf70.com/2852.html

1
2024-08-08 09:59:22

识别码:amhctq38197AH-这游戏真不错!http://www.a5km.com/yxgl/jdqs/29253.html

1
2024-08-15 17:39:59

识别码:yqwjgk79382DV-文章写的真不错https://www.588btc.com

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。