2011-05-17 64 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来计算帖子。因为如果你只需要计数就不需要请求整个行集,这会提高性能并节省资源。