資料庫執行效率的對比測試

997948599發表於2014-11-14
今天看了一篇很有意思的文章,對比資料庫和普通程式語言的效率測試,
測試的語言分別是mysql的儲存過程,oracle plsql和perl.
 測試機器是同一臺機器上,測試標準是計算100萬次的cos函式
 oracle程式碼
create or replace procedure oraclesp
as
  i integer;
  j integer;
   begin
      for i in 0..1000000
         loop
            j:=cos(i);
          end loop;
    end;
SQL>  exec oraclesp;
PL/SQL procedure successfully completed.
Elapsed: 00:00:07.38
執行時間7.38秒


mysql的程式碼
DELIMITER$$
DROP PROCEDURE IF EXISTS mysql_sp$$
create procedure mysql_sp()
begin
  declare i integer;
  declare j integer;
   set i=0; 
loop1:loop
   
  if i>1000000
     then leave loop1;
       end if;
   set j=cos(i);
   set i=i+1;
   end loop loop1;
    end$$
delimiter ;
mysql> call mysql_sp();
Query OK, 0 rows affected (2.95 sec)
執行時間為2.95秒
perl程式碼
#!/usr/bin/perl -w
#writen by dongdongtang
use strict;
my $i;
my $j;
  for ($i=0;$i<=1000000;$i++)
    {
    $j=cos($i);
      }
[oracle@localhost 1102]$ time /home/oracle/1102/1.pl
real    0m0.114s
user    0m0.113s
sys     0m0.001s
花費時間是0.114秒


透過對比測試,我們發現資料庫執行計算的效率比程式語言的效率要低得多.資料庫的長處是在於存和讀
取資料,因此儘量少使用資料庫來做一些計算。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29874640/viewspace-1332538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章