电脑技术学习

用PHP连mysql和oracle数据库性能比较

dn001

用来测试oracle的程序:;

<?php;

$handle=OCILogon("php_oracle","php_oracle");;

$counter=1;;

set_time_limit(300);;

$query="insert;into;board;(board_id,board_name,board_manager);values;(:board_id,'test','test')";;

$state=OCIParse($handle,;$query);;

OCIBindByName($state,;":board_id",;&$i,32);;

$begin_time=time();;

for;($i=1;$i<=10000;$i++){;

ociexecute($state);;

};

$end_time=time();;

OCIFreeStatement($state);;

ocilogoff($handle);;

echo;"test;db;speed...<br>";;

echo;"begin;time:".$begin_time."<BR>";;

echo;"<BR>end;time:".$end_time."<BR>";;

$total=$end_time-$begin_time;;

echo;"total;spent;time:".$total;;

?>;

测试结果:

环境:win32+apache+php4+mysql;

结果:28秒;

环境:win32+apache+php3+mysql;

结果:34秒;

环境:win32+apache+php3+oracle8.0.5(oci函数);

结果:46秒;

环境:linux+apache+php4+mysql;

结果:10秒;

结论:

在WIN32下,mysql的性能虽然不是很好,但和oracle8比起来,还是要快很多,尤其是我在测试程序中,并没有将数据库连接的语句包括进来,所以这个测试结果只是插入数据所花费的时间,而oracle的连接,天,太慢了!在我的机器上,连接一次,至少1-2秒钟。而在LINUX下,mysql的性能相对于在WIN32下,又有了一个很大的飞跃。由28秒骤减到10秒。所以,如果你不需要存储过程的支持,并且数据库量不是大的那么惊人的话,还是在LINUX下使用mysql作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相当不错的安全性。

$counter++;;

};

$end_time=time();;

mysql_close($dblink);;

echo;"test;db;speed...<br>";;

echo;"begin