2011-05-17 61 views
2

我在我的網站有一個部分,我確實需要計算特定帖子的評論數。我實際上已經構建了一個用於檢索評論數據庫表(函數getComments)中的所有數據的函數。PHP性能和冗餘

評論數據庫表結構是:id(PK)| authorId | datetime | postId |文字

現在,因爲我只需要指望他們(的意見),我在想,如果在服務器資源/冗餘的期限是更好地使用:

$comments=new Comment(); 
$comments->getComments(); 
echo count($comments); 

還是我最好再建功能(除了 'getComments'),如:

function countComments($postid) 
{ 
    //count comments per post 
} 

感謝

盧卡

+0

這何嘗不是Zend的談話;) – 2011-05-17 09:27:29

+0

是的,我不得不改變它更一般的PHP談話。 – luca 2011-05-17 09:39:42

回答

7

計數數據庫您的意見是更有效,因爲

  1. 只有數轉移,所以你保存您的數據庫和PHP 過程之間的帶寬
  2. 節省IO因爲不產生結果和數據不從磁盤
  3. RDBMS讀取用於這樣的功能優化

假設,您使用Zend_Db的這樣的事情應該工作:

$query = $db->select()->from('comments', 'count(*)'); 
$count = $db->fetchOne($query); 

代碼冗餘不是問題恕我直言,在這裏,它只是一個或兩行。

3

我總是希望使用一個單獨的函數,它使用MySQL來計算帖子。因爲如果你只需要計數就不需要請求整個行集,這會提高性能並節省資源。