用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 相关文章推荐
几个php应用技巧
Mar 27 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
php打造属于自己的MVC框架
Mar 07 PHP
PHP基础知识回顾
Aug 16 PHP
PHP中操作ini配置文件的方法
Apr 25 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
PHP自定义错误处理的方法分析
Dec 19 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 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
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
CI框架的安全性分析
2016/05/18 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
综合素质的自我鉴定
2013/10/07 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
校园环保建议书
2014/05/14 职场文书
档案工作汇报材料
2014/08/21 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
村委会贫困证明范文
2014/09/21 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
详解Vue slot插槽
2021/11/20 Vue.js