|
|
|
sql语句连接数据插入与循环插入效率对比 |
热 |
|
sql语句连接数据插入与循环插入效率对比 |
|
作者:闵涛 文章来源:闵涛的学习笔记 点击数:873 更新时间:2007/11/14 12:54:03 |
|
语言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斤石头的人跑的还快 所以 这个人的效率比他高的多
不知道这样分析否合理 纯属爱好 有异议的尽管提
[办公软件]在sybase中插入图片、PDF、文本文件 [办公软件]安装Sybase ASE [办公软件]linux指令大全(完整篇) [办公软件]Linux新手入门常用命令大全 [办公软件]在RedHat Linux 9里安装gaim0.80 [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法 [办公软件]Linux程序员必读:中文化与GB18030标准 [办公软件]linux指令大全 [办公软件]制作Linux启动盘的四种方法 [办公软件]Linux文件系统的反删除方法
|
|
教程录入:mintao 责任编辑:mintao |
|
|
上一篇教程: 漫谈SQL Server中的标识列(二) 下一篇教程: 调整SQLServer2000运行中数据库结构 |
|
|
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网] |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|
|
|
|
同类栏目 |
|
|
赞助链接 |
|
|
500 - 内部服务器错误。
|
|
|
|
|
|