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


Posted in PHP onOctober 09, 2006

测试硬件说明:
测试使用的是我的爱机,配置如下:
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作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相 当不错的安全性。 

PHP 相关文章推荐
phpmailer发送gmail邮件实例详解
Jun 24 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
php防止sql注入代码实例
Dec 18 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
详解Window7 下开发php扩展
Dec 31 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
AJAX的使用方法详解
Apr 29 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
Sep 18 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 PHP
利用文件属性结合Session实现在线人数统计
Oct 09 #PHP
PHP中上传大体积文件时需要的设置
Oct 09 #PHP
新版PHP极大的增强功能和性能
Oct 09 #PHP
用PHP开发GUI
Oct 09 #PHP
PHP中实现进程间通讯
Oct 09 #PHP
PHP利用COM对象访问SQLServer、Access
Oct 09 #PHP
新版mysql+apache+php Linux安装指南
Oct 09 #PHP
You might like
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
PHP概率计算函数汇总
2015/09/13 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
nginx 设置多个站跨域
2021/03/09 Servers
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
用python读写excel的方法
2014/11/18 Python
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
Python中关于使用模块的基础知识
2015/05/24 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python使用多进程的实例详解
2018/09/19 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
pytorch 常用线性函数详解
2020/01/15 Python
np.dot()函数的用法详解
2020/01/17 Python
python 连续不等式语法糖实例
2020/04/15 Python
python字典的值可以修改吗
2020/06/29 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
民主评议政风行风整改方案
2014/09/17 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
基层工作经历证明
2015/06/19 职场文书
陪护人员误工证明
2015/06/24 职场文书
世界名著读书笔记
2015/06/25 职场文书
三十年同学聚会感言
2015/07/30 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android