首页 -> 登录 -> 注册 -> 回复主题 -> 发表主题
光行天下 -> 手机,电脑,网络技术与资讯 -> 用PHP连mysql和oracle数据库性能比较 [点此返回论坛查看本帖完整版本] [打印本页]

webn 2005-10-24 13:17

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

用PHP连mysql和oracle数据库性能比较 2#XYR>[  
d3IMQ_k  
测试硬件说明: <mk'n6B  
测试使用的是我的爱机,配置如下: yu~o9  
CPU:C433 2~wIHtd  
内存:128M MjNq8'$"  
硬盘:酷鱼2代20G T, z80m}  
S>6f0\F/Y%  
测试软件说明: rgK:ujzW!  
WIN32下用的是windows nt server4,sp5,apache 1.3.12,php3.0.15和php4rc1,mysql 3.22.29,oracle 8.0.5 2VZdtz  
linux下用的是bluepoint linux1.0, apache 1.3.12, php4rc1,mysql 3.22.32 p$:ERI  
c*@#0B  
测试代码说明: r](%9Y  
使用一个很简单的表,mysql和oracle使用的表结构是一样的,都只有三个字段,结构如下: k%gO  
mysql的表结构: $oo`]R_   
CREATE TABLE board ( ?R MOy$L  
board_id smallint(6) NOT NULL auto_increment, '=V!Y$tn  
board_name char(16) NOT NULL, Ed>Dhy6\r  
board_manager char(20), 01_*^iCf5  
PRIMARY KEY (board_id) -,Oq=w*EV  
); 70MSP;^  
oracle的结构: }j_2K1NS{  
CREATE TABLE PHP_ORACLE."BOARD" G%q^8#  
("BOARD_ID" FLOAT, W74Y.zQ  
"BOARD_NAME" CHAR(16) NOT NULL, 1[ 4)Sq?  
"BOARD_MANAGER" CHAR(20)) ; `p'(:W3a  
wr~Ydmsf  
我们只测试了INSERT操作花的时间,对于select,并未作测试。 xl]1{$1M  
因为win32下只有PHP3才能连接oracle数据库,所以只测试了用PHP3连接oracle的性能。相 Z+%w|Sx  
信在PHP4的正式版本出来后,用PHP4连接oracle的速度应该有所提升。 [ e6zCN^t  
而在LINUX下,因为我没有装oracle,所以只测试了mysql的性能。据说在LINUX下,oracle qx;8Hq(E[  
的性能不错,只是无法测试。 ]}za  
并且我们将所有的用于数据库连接和oracle用来分析sql语句的代码都放在了统计代码之外 m8:9Uv  
,所以测试得出的时间只是用于执行SQL操作所花费的时间。 T!F0_<  
';>A=m9(4%  
用来测试mysql的程序: 937 z*mh  
Ob~7r*q  
<?php VUF$,F9  
$dblink=mysql_connect("localhost","root","shh123"); >2)`/B9f4  
mysql_select_db("bbs"); IHs^t/;Iv  
$counter=1; ~B2,edkM  
set_time_limit(300); S!r,p};  
$query="insert into board (board_name,board_manager) values ('test','test')"; er44s^$  
$begin_time=time(); N,?4,+Hc-  
for ($i=1;$i<=10000;$i++){ u;/5@ADW  
mysql_db_query("bbs",$query); D00v"yp%%  
$counter++; %vZTD +i  
} oj'a%mx  
$end_time=time(); !^FR a{b  
mysql_close($dblink); P =jRof$  
echo "test db speed...<br>"; = 9K5f# ;e  
echo "begin time:".$begin_time."<BR>"; !C3ozZ<  
echo "<BR>end time:".$end_time."<BR>";  D_D76  
$total=$end_time-$begin_time; d>wpG^"w  
echo "total spent time:".$total;  qH9bo-6  
?> ,ej89  
~ _G W  
用来测试oracle的程序: z,+LPr  
W)z@>4`Bb  
<?php _t7}ny[  
$handle=OCILogon("php_oracle","php_oracle"); U1y8Y/  
^lP;JT?  
$counter=1; gbvMS*KQz  
set_time_limit(300); Q?xCb  
$query="insert into board (board_id,board_name,board_manager) values (:board_id,'test','test')"; W3E7y?  
$state=OCIParse($handle, $query); V\6V&_  
OCIBindByName($state, ":board_id", &$i,32); Y A:!ULzR*  
$begin_time=time(); 5BAGIO<w  
for ($i=1;$i<=10000;$i++){ \&jmSa=]l  
ociexecute($state); TYH4r q &  
} ;RUod .x  
$end_time=time(); 0vjlSHS;`.  
OCIFreeStatement($state); &WV&_z  
ocilogoff($handle); ui .riD[,O  
echo "test db speed...<br>"; ?"Ec#,~  
echo "begin time:".$begin_time."<BR>"; E-v#G~  
echo "<BR>end time:".$end_time."<BR>"; 3I.0jA#T&/  
$total=$end_time-$begin_time; p*5QV  
echo "total spent time:".$total; dVKctt'C  
?> BTAt9Z8qK  
d$}!x[g$Z  
测试结果: 30fqD1_{  
VNT*@^O_=  
环境:win32+apache+php4+mysql [~Vj(H=KwI  
结果:28秒 m3']/}xHO  
my+2@ln  
环境:win32+apache+php3+mysql  &peUC n  
结果:34秒 w'Vm'zo  
bD:[r))#e  
环境:win32+apache+php3+oracle8.0.5(oci函数) s,|"s|P  
结果:46秒 e anR$I;Yj  
|x+g5~$  
环境:linux+apache+php4+mysql S-2@:E  
结果:10秒 j0uu* )Rk  
r>,s-T!7  
结论: kD\7wz,ui  
在WIN32下,mysql的性能虽然不是很好,但和oracle8比起来,还是要快很多,尤其是我在 lK"m|Z  
测试程序中,并没有将数据库连接的语句包括进来,所以这个测试结果只是插入数据所花费 - U Elu4n&  
的时间,而oracle的连接,天,太慢了!在我的机器上,连接一次,至少1-2秒钟。 Hpj7EaMZ_  
而在LINUX下,mysql的性能相对于在WIN32下,又有了一个很大的飞跃。由28秒骤减到10秒。 |6o!]~&e$1  
所以,如果你不需要存储过程的支持,并且数据库量不是大的那么惊人的话,还是在LINUX ~m6b6Aj@6  
下使用mysql作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相 76eF6N+%}t  
当不错的安全性。 MG-#p8  
UNF@%O4_T  
   大家快到这里继续学习其他的知识: http://www.now.net.cn/support/ c_Lcsn  
4r tNvf5`  
   提供免费咨询电话 : http://www.now.net.cn/customer/moreline.net YwU[kr-i  
<X "_S'O  
    QQ咨询:168075865   188092185 xtFGj,N  
    聯系電話:0756-2623870 &[W53Lqa  
    E2i'lO\P  
   大家懂了吗?懂了就要说懂,不懂就要说不懂,你不能懂了说你没懂,没懂反而说懂了,懂就是懂,不懂就是不懂...哎呦,谁拿臭鸡蛋丢我? 我话还没说完啊 r0/aw  
{JlSfJw !  
  〓优惠套餐PHP系列推荐: yN{TcX  
  ⊙商务B型主机 送国家顶级CN域名或国际域名·送800M 空间邮箱·送GCDN 网站加速及镜像引擎·送繁简通网络简装版     1350 元/年 M{4U%lk  
C0gO^A.d  
  ⊙虚拟专用B型主机 送国家顶级CN域名或国际域名·送2000M VIP企业邮局·送GCDN 网站加速及镜像引擎·送繁简通网络商务版 3800 元/年 K:q|M?_  
3,yzRb  
    更多优惠,详情请见: http://www.now.net.cn/special/ g@|2z  
Px?zih!6  
▲商务C型主机+.CN 1650 元/年 ,免费加送CDN网站加速器 送繁简通网络简装版 $nqVE{ksV  
    500独立空间,支持ASP/ASP.NET免费送800Mb邮箱Win20 ni?5h5-  
    03,IIS 6.0,支持50M SQLSERVER 2000ACCESS 数据库 ' '<3;  
    提供计数器,留言板脚本列表 ASP ASP.NET Active =:*2t  
    Perl CGIASP.NET 1.1 Microsoft Front Page 2000 扩 展 0)]?@"j  
    [=]LR9c4  
  ▲ 虚拟专用型C+.CN域名 4000 元/年  免费加送CDN网站加速器 送繁简通网络简装版 &a!MT^anA~  
  uJSzz:\  
    送2000M VIP 企业邮局 支持ASP/ASP.NET免费送800Mb 8 -YC#&  
    邮箱Win2003,IIS 6.0,支持50M SQLSERVER 4`/Td?THx  
    2000ACCESS 数据库提供计数器,留言板脚本列表 ASP Vb,'VN%   
    ASP.NET Active Perl CGIASP.NET 1.1 !:3X{)4  
    MicrosoftFront Page 2000 扩展,支持虚拟目录。 z#*> u  
ST1c`0e  
  详情请点击: http://www.now.net.cn/host +'9E4Lpx  
  全球免费咨询电话,请点击 http://now.net.cn/customer/moreline.net .~,=?aq^  
  聯系電話:0756-2623870   QQ咨询:168075865   188092185
pclover 2005-11-01 11:51
看过广告,谢谢。
查看本帖完整版本: [-- 用PHP连mysql和oracle数据库性能比较 --] [-- top --]

Copyright © 2005-2026 光行天下 蜀ICP备06003254号-1 网站统计