测试硬件说明: 测试使用的是我的爱机,配置如下: 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的程序: ; echo
begin time:.$begin_time.; echo end time:.$end_time.; $total=$end_time-$begin_time; echo total spent time:.$total;
?> 用来测试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; echo begin time:.$begin_time.; echo
end time:.$end_time.; $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作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相 当不错的安全性。
转自: http://edu.chinaz.com |