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

liyuzhao7年前学习记录2841

探索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左右的数据)速度最快,当然测试有点局限性,如果有错,欢迎留言提出。

相关文章

centos7 下安装php扩展redis

最近一直在学习并发、tcp\ip协议等等,然后发现了redis很好用,就打算去实用一下,我打算实验一下,用redis查询15W条数据的时间,服务器的配置是:cpu:1核带宽:1M内存:1G废话不多说,...

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

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

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

session和cookie原理透彻分析

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

探讨mysql的游标cursor

探讨mysql的游标cursor

以下是我的做法步骤代码://新建动物表create table dw(dw_id int,dw_name varchar(20),dw_num varchar(10));//插入几条数据insert...

redis在centos7 自启动,并用service启动或者关闭

redis在centos7 自启动,并用service启动或者关闭

1.为了让redis-server能在系统启动时自动运行,需要将redis服务作为守护进程(daemon)来运行,我们回/usr/local/cluster/7000/目录中找到一个redis.con...

探讨mysql的权限问题

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

评论列表

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

发表评论    

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