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

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

语言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斤石头的人跑的还快

所以 这个人的效率比他高的多

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航