用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和MySQL保存和输出图片
Oct 09 PHP
将数字格式的计算结果转为汉字格式
Oct 09 PHP
通过文字传递创建的图形按钮
Oct 09 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
smarty实现多级分类的方法
Dec 05 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
thinkphp分页实现效果
Oct 13 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 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正则校验用户名介绍
2008/07/19 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
React Router基础使用
2017/01/17 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
解决vue 退出动画无效的问题
2020/08/09 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python匿名函数及应用示例
2019/04/09 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
如何开启linux的ssh服务
2013/06/03 面试题
大二学生学习个人自我评价
2014/01/19 职场文书
团日活动总结模板
2014/06/25 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫