2015-01-07 40 views
0

我有多個類,並連接到同一個數據庫我有我的數據庫類和用戶,配置文件,消息類? 我應該使用擴展或只是公正的全球和使用舊的連接,速度和性能重新連接到數據庫或使用舊的連接更好的性能

class mydb{ 
function connect(){ 
} 
function query(){ 
} 
} 
$mydb = new mydb(connect); 




    class user extends mydb{ 
    function get_usr(){ 
    parent::connect(); // in here I need to connect again, but I still have my connection $mydb 
    $value = parent::query(string); 
    return $value; 
     } 

或者

class user{ 
function get_usr(){ 
global $mydb; 
$value = $mydb->query(string); 
return $value 
} 

} 

現在哪一個是更好的性能更好。

回答

2

面向企業級應用的最佳實踐是創建與數據庫連接池。這些連接總是從DB側打開。

無論何時應用程序或您的類需要與數據庫進行通信,然後類會從池(應該可配置)中選取一個連接並使用它。這爲連接建立和斷開節省了時間。但是它的開發者有責任在使用後釋放連接回連接池。

這有助於,

  1. 保持限制
  2. 提高DB
  3. 的性能限制沒有內DB服務器的利用率。的查詢打到DB
  4. 改善代碼的可讀性和可重用性。

從性能角度來看,不僅數據庫連接池很重要,而且使用的語句類型也很重要。建議在使用連接池的同時使用預準備語句來提高性能。

1

關閉重新連接需要時間(以毫秒爲單位)。 最好始終使用一個全局連接(打開)。 這是所有編程語言的最佳實踐。

PS:不要忘記關閉是沒有必要的,當它連接(當用戶它關閉軟件等):)