论坛: 编程破解 标题: 今天做了PHP+MYSQL和asp+mssql测试,贴出来看下。 复制本贴地址    
作者: 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]   ADMIN   登录
看起来似乎性能都差不多阿
不过这样的比较不大公平阿,你应该用相同的硬件然后让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号