用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中的正规表达式(二)
Oct 09 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
深入PHP curl参数的详解
Jun 17 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
php实现的一段简单概率相关代码
May 30 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
php实现商城购物车的思路和源码分析
Jul 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
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
angularjs路由传值$routeParams详解
2020/09/05 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
python实现二维码扫码自动登录淘宝
2016/12/27 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
查看Django和flask版本的方法
2018/05/14 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
中医药大学毕业生自荐信
2013/11/08 职场文书
校友会欢迎辞
2014/01/13 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
职位说明书范文
2014/05/07 职场文书
安全标语大全
2014/06/10 职场文书
授权委托书
2014/09/17 职场文书
教导主任个人总结
2015/03/03 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
董事会决议范本
2015/07/01 职场文书
春季运动会加油词
2015/07/18 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
关于MySQL中的 like操作符详情
2021/11/17 MySQL