sql语句连接数据插入与循环插入效率对比

类别:编程语言 点击:0 评论:0 推荐:
语言php

版本:php4.3

系统:winxp

以下是测试结果:

1.常规循环式插入 6万条数据 也就是循环6万次拉
<?php
$qqq="insert into csdata(zdmc,bmsj,dzmc,taa,mz,xb,nl,dh,mail,sfz)values('aaaaa','bbbbb','ccccc','ddddd','eeeee','fffff','ggggg','hhhhh','iiiii','jjjjj')";
?>
时间如下==============================================

起:1088145905m62502u
终:1088145933m651216u
588714

起:1088145958m15628u
终:1088145986m74278u
58650


起:1088146007m781253u
终:1088146035m285999u
-495254

起:1088146056m609378u
终:1088146084m360206u
-249172

起:1088146104m3u
终:1088146131m702599u
702596


起:1088146161m3u
终:1088146188m527752u
527749

起:1088146216m453127u
终:1088146244m290762u
-162365

起:1088146265m843754u
终:1088146293m469345u
-374409


起:1088146313m390627u
终:1088146341m234770u
-155857

起:1088146357m500002u
终:1088146385m27298u
-472704

平均用时 28秒+几百微秒 按28秒算






使用以上方法既连接的方式插入6万条
$que1="insert into csdata(zdmc,bmsj,dzmc,taa,mz,xb,nl,dh,mail,sfz)values('aaaaa','bbbbb','ccccc','ddddd','eeeee','fffff','ggggg','hhhhh','iiiii','jjjjj')";
$que2=",('aaaaa','bbbbb','ccccc','ddddd','eeeee','fffff','ggggg','hhhhh','iiiii','jjjjj')";
$qqq=$que1.$que2.$que2.$que2.$que2.$que2.$que2.$que2.$que2.$que2;
然后执行 $qqq 因为他是连接了10条数据 所以插入6万条数据 循环6000次就可拉

时间如下====================================
起:1088145498m312502u
终:1088145502m199752u
-112750

起:1088145549m640628u
终:1088145553m547200u
-93428

起:1088145574m750003u
终:1088145578m640656u
-109347

起:1088145599m859377u
终:1088145603m738007u
-121370

起:1088145626m484378u
终:1088145630m421268u
-63110


起:1088145657m734377u
终:1088145661m739197u
4820

起:1088145686m281253u
终:1088145690m205477u
-75776

起:1088145727m46878u
终:1088145730m963751u
916873

起:1088145751m968753u
终:1088145755m930542u
-38211

起:1088145779m828128u
终:1088145783m772599u
-55529


平均用时 3秒 + 几万微秒 按4秒算



因此 以上方式效率比循环插入高

因考虑的类的使用次数可能影响运行时间 又做类的循环实验






循环插入式调用类==============================

循环10次 平均每次插入用时 3134.1微秒
1088146914m125002u
1088146914m156343u
31341

循环100次 平均每次插入用时 700.51微秒
1088146962m218752u
1088146962m288803u
70051



循环1000次 平均每次插入用时 493.118微秒
1088147012m609377u
1088147012m1102495u
-506882

也就是说 循环次数越多 类站用的运行时间越短 1000次内最高效率 493.118秒




连接式插入数据调用类===================================

循环10次 平均每次插入用时 2908.8微秒
1088146504m640628u
1088146504m669716u
29088


循环100次 平均每次插入用时 949.73微秒
1088146547m359380u
1088146547m454353u
94973

循环1000次 平均每次插入用时 664.261 微秒
1088146588m234378u
1088146588m898639u
664261

1000次内最高效率 664.261微秒


因此 从调用类上看 循环越多 每次时间越短 并且用循环式插入 493.118微秒 比 连接式插入 664.261微秒 更节省时间


所以 走一样的路 循环式插入 受类的影响比连接式插入还小
而 总体用时竟然是 他的7倍 所以 连接式插入数据比循环类插入效率高至少7倍以上


通俗点就是
两个人跑千米赛 背100斤石头的人 比背80斤石头的人跑的还快
所以 这个人的效率比他高的多



不知道这样分析否合理 纯属爱好 有异议的尽管提

本文地址:http://com.8s8s.com/it/it26386.htm