2

我的网站中有一个部分,我确实需要计算特定帖子的评论数量。实际上,我已经构建了一个用于检索评论数据库表中所有数据的函数(函数 getComments)。

评论数据库表结构是:id(PK)| 作者 ID | 日期时间 | 邮编 | 文本

现在,因为我只需要计算它们(评论),我想知道是否更好地使用服务器资源/冗余:

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

或者我最好构建另一个函数(除了'getComments'):

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

谢谢

卢卡

4

3 回答 3

7

在数据库中计算您的评论更有效,因为

  1. 只传输计数,因此您可以节省数据库和 php 进程之间的带宽。
  2. 保存 IO是因为未生成结果且未从磁盘读取数据
  3. RDBMS针对此类功能进行了优化。

假设您使用 Zend_Db,这样的东西应该可以工作:

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

代码冗余在这里不是问题恕我直言,它只是一两行。

于 2011-05-17T09:38:06.783 回答
3

我总是更喜欢使用一个单独的函数,它使用 MySQL 来计算帖子。因为如果您只需要计数,则不必请求整个行集,从而提高性能并节省资源。

于 2011-05-17T09:21:45.983 回答
1

在其他线程中查看我的答案:Zend_Db:如何从表中获取行数?

于 2011-05-17T12:09:33.087 回答