查看: 7344|回复: 0
打印 上一主题 下一主题

php连接几种数据库的性能对比,加空间介绍!

[复制链接]
跳转到指定楼层
1#
发表于 2007-9-6 10:49:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
测试硬件说明:  
测试使用的是我的爱机,配置如下:  
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  

测试代码说明:  
使用一个很简单的表,mysql和oracle使用的表结构是一样的,都只有三个字段,结构如下:  
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  
$dblink=mysql_connect("localhost","root","shh123");  
mysql_select_db("bbs");  
$counter=1;  
set_time_limit(300);  
$query="insert  into  board  (board_name,board_manager)  values  ('test','test')";  
$begin_time=time();  
for  ($i=1;$i<=10000;$i++){  
mysql_db_query("bbs",$query);  
$counter++;  
}  
$end_time=time();  
mysql_close($dblink);  
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;  
?>  
用来测试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作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相  
当不错的安全性。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州维博网络(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:企业网站建设、网站程序开发、手机APP客户端、平面设计、主机域名、虚拟空间、网站推广、网站优化、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2024 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表