选择显示字体大小

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

测试硬件说明: 

测试使用的是我的爱机,配置如下: 

cpu:c433 

内存:128m 

硬盘:酷鱼2代20g 

测试软件说明:



win32下用的是windows nt server4,sp5,apache 1.3.12,php3.0.15和php4rc1,mysql 3.22.29,oracle 8.0.5 

linux下用的是bluepoint linux1.0, apache 1.3.12, php4rc1,mysql 3.22.32 

测试代码说明: 

使用一个很简单的表,mysqloracle使用的表结构是一样的,都只有三个字段,结构如下: 

mysql的表结构: 

create table board ( 

board_id smallint(6) not null auto_increment, 

board_name char(16) not null, 

board_manager char(20), 

primary key (board_id) 

); 

oracle的结构: 

create table php_oracle."board" 

("board_id" float, 

"board_name" char(16) not null, 

"board_manager" char(20)) ; 

我们只测试了insert操作花的时间,对于select,并未作测试



因为win32下只有php3才能连接oracle数据库,所以只测试了用php3连接oracle的性能。相信在php4的正式版本出来后,用php4连接oracle的速度应该有所提升。 

而在linux下,因为我没有装oracle,所以只测试mysql的性能。据说在linux下,oracle的性能不错,只是无法测试。 

并且我们将所有的用于数据库连接和oracle用来分析sql语句的代码都放在了统计代码之外,所以测试得出的时间只是用于执行sql操作所花费的时间。 

用来测试mysql的程序: 

<?php 

&#36;dblink=mysql_connect("localhost","root","shh123"); 

mysql_select_db("bbs"); 

&#36;counter=1; 

set_time_limit(300); 

&#36;query="insert into board (board_name,board_manager) values ('test','test')"; 

&#36;begin_time=time(); 

for (&#36;i=1;&#36;i<=10000;&#36;i++){ 

mysql_db_query("bbs",&#36;query); 

&#36;counter++; 



&#36;end_time=time(); 

mysql_close(&#36;dblink); 

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

echo "begin time:".&#36;begin_time."<br>"; 

echo "<br>end time:".&#36;end_time."<br>"; 

&#36;total=&#36;end_time-&#36;begin_time; 

echo "total spent time:".&#36;total; 

?> 

用来测试oracle的程序: 

<?php 

&#36;handle=ocilogon("php_oracle","php_oracle"); 

&#36;counter=1; 

set_time_limit(300); 

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

&#36;state=ociparse(&#36;handle, &#36;query); 

ocibindbyname(&#36;state, ":board_id", &&#36;i,32); 

&#36;begin_time=time(); 

for (&#36;i=1;&#36;i<=10000;&#36;i++){ 

ociexecute(&#36;state); 



&#36;end_time=time(); 

ocifreestatement(&#36;state); 

ocilogoff(&#36;handle); 

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

echo "begin time:".&#36;begin_time."<br>"; 

echo "<br>end time:".&#36;end_time."<br>"; 

&#36;total=&#36;end_time-&#36;begin_time; 

echo "total spent time:".&#36;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作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相当不错的安全性。



  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons