仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1491|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之用PHP连mysql和oracle数据库功能对照

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:25:21 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怎么样出来了吧,怎么样自己也可以写出php程序了,虽然离职业和专业的人还有很远,但是好的开始是成功的一半。这个时候改怎么做了呢。现在就是拿1本高手推荐的书,重头到尾读1遍,我说的这个读是自己看。mysql|oracle|对照|数据|数据库|功能   用PHP连mysql和oracle数据库功能对照

测试硬件申明:
测试利用的是我的爱机,设置装备摆设以下:
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作为你的数据库吧!这个轻量级的数据库可以给你最好的功能、可办理性和相当不错的平安性。
  总的来说,在这一个月左右的时间中,学到的不少,但是也遇到不少的问题,比如批量图片的上传,一直到现在也不懂,如何实现动态的增加上传图片的数量。
若相依 该用户已被删除
沙发
 楼主| 发表于 2015-4-5 12:17:34 | 显示全部楼层
当然这种网站的会员费就几十块钱。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 18:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表