|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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作为你的数据库吧!这个轻量级的数据库可以给你最好的功能、可办理性和相当不错的平安性。
总的来说,在这一个月左右的时间中,学到的不少,但是也遇到不少的问题,比如批量图片的上传,一直到现在也不懂,如何实现动态的增加上传图片的数量。 |
|