用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环境搭建最新方法
Sep 05 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
php支付宝系列之电脑网站支付
May 30 PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 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
关于PHP中的Class的几点个人看法
2006/10/09 PHP
php发送与接收流文件的方法
2015/02/11 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
使用webpack构建应用的方法步骤
2019/03/04 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
自我评价优秀范文分享
2013/11/30 职场文书
如何撰写岗位职责
2014/02/01 职场文书
法学专业求职信
2014/07/15 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
起诉书格式范文
2015/05/20 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
代码解析React中setState同步和异步问题
2021/06/03 Javascript