|
![]() | 作者: lwei889 [lwei889]
![]() |
登录 |
运行环境: win2000 server +iis+php5+mysql5+mssql 2000 看了网上流行的数据连接性能比较,今天也亲自测试了下,主要是因为网站挂了一个,要换程序。正在考虑用什么写。无聊中,就做了个测试,亲自体会一下。 以下六种方法都是插入1万条记录(不多,因为我的机器插入3万条就不行了,无奈,只好选择一次插入1万条) 请注意每个程序的SQL语句的构造 程序1: <?php //定义时间函数 function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $sql1=""; $conn=mysql_connect('localhost:3306','root','root'); $sql="insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')"; if (!$conn) { echo "link database error."; echo mysql_error(); exit(); } mysql_select_db('cney'); //获取开始时的时间 $time_start = getmicrotime(); for ($i=0;$i<10000;$i++) { $sql1=$sql1.",('lee','22','male','00000')"; } $sql=$sql.$sql1; $result=mysql_query($sql) or die("Invalid query: " . mysql_error()); } //获取执行代码后的时间 $time_end = getmicrotime(); //计算结果 $time = $time_end - $time_start; //输出结果 echo "页面执行".$time; mysql_close($conn); ?> PHP+MYSQL+iis执行结果:3.362053155899 插入1万条记录 程序2: <?php //定义时间函数 function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $sql1=""; $conn=mysql_connect('localhost:3306','root','root'); $sql="insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')"; if (!$conn) { echo "link database error."; echo mysql_error(); exit(); } mysql_select_db('cney'); //获取开始时的时间 $time_start = getmicrotime(); for ($i=0;$i<10000;$i++) { $result=mysql_query($sql) or die("Invalid query: " . mysql_error()); } //获取执行代码后的时间 $time_end = getmicrotime(); //计算结果 $time = $time_end - $time_start; //输出结果 echo "页面执行".$time; mysql_close($conn); ?> PHP+MYSQL+iis执行结果:脚本超时 超时设置为60s 实际插入:3840条记录 程序3: <?php $sql1=""; //定义时间函数 function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $conn=mssql_connect('thinker','sa','000'); $sql="insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')"; //获取开始时的时间 $time_start = getmicrotime(); if (!$conn) { echo "link database error."; echo mssql_error(); exit(); } mssql_select_db('cney'); for ($i=0;$i<10000;$i++) { $sql=$sql." insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')"; } $result=mssql_query($sql) or die("Invalid query: " . mssql_error()); //获取执行代码后的时间 $time_end = getmicrotime(); //计算结果 $time = $time_end - $time_start; //输出结果 echo "页面执行".$time; mssql_close($conn); ?> PHP+MSSQL+iis执行结果:47.951757907867 程序4: <?php //定义时间函数 function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $sql1=""; $conn=mssql_connect('thinker','sa','000'); $sql="insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')"; if (!$conn) { echo "link database error."; echo mssql_error(); exit(); } mssql_select_db('cney'); //获取开始时的时间 $time_start = getmicrotime(); for ($i=0;$i<10000;$i++) { $result=mssql_query($sql) or die("Invalid query: " . mssql_error()); } //获取执行代码后的时间 $time_end = getmicrotime(); //计算结果 $time = $time_end - $time_start; //输出结果 echo "页面执行".$time; mssql_close($conn); ?> PHP+MSSQL+iis执行结果:37.448522090912 程序5: <!--#include file=conn.asp--> <% starttime=Now() sql="insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')" for i=0 to 10000 sql=sql + " insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')" next on error resume next conn.execute(sql) on error resume next Endtime=Now() exectime1=DateDiff("s",starttime,Now()) exectime=cstr(cdbl((endtime-starttime)*24*60*60)) response.write "<br>exectime=" & exectime & " " & exectime1 %> ASP+MSSQL执行结果:60.999999800697 插入1万条记录 程序6: <!--#include file=conn.asp--> <% starttime=Now() sql="insert into cn_user(cn_name,cn_age,cn_sex,cn_fax) values('lee','22','male','00000')" for i=0 to 10000 conn.execute(sql) next Endtime=Now() exectime1=DateDiff("s",starttime,Now()) exectime=cstr(cdbl((endtime-starttime)*24*60*60)) response.write "<br>exectime=" & exectime & " " & exectime1 %> ASP+MSSQL执行结果:39.0000003157184 插入1万条记录 |
地主 发表时间: 06-03-28 14:25 |
![]() | 回复: zhoen889 [zhoen889] ![]() |
登录 |
好长时间没有在这里看到你了,看来技术上又有新的突破了,可怜兄弟我。。。还在混日子 哈哈 |
B1层 发表时间: 06-03-28 18:14 |
![]() | 回复: lwei889 [lwei889] ![]() |
登录 |
我天天也就是混日子 日子马上又混不下去了,又要辞职了! 可怜啊........ |
B2层 发表时间: 06-03-29 09:33 |
![]() | 回复: NetDemon [netdemon] ![]() |
登录 |
看起来似乎性能都差不多阿 不过这样的比较不大公平阿,你应该用相同的硬件然后让php+mysql运行在UNIX平台上测试 |
B3层 发表时间: 06-04-01 02:31 |
![]() | 回复: lwei889 [lwei889] ![]() |
登录 |
没条件 现在没自己的电脑,测试是用的工作电脑 不过程序1的结果优势还是 很明显的 1万条记录3S多 |
B4层 发表时间: 06-04-01 19:02 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号