php - 在 CakePHP 中查找 ('count' ) 有多贵?

标签 php mysql cakephp performance count

我有一个 CakePHP 应用程序,我试图在其中计算用户拥有的每种类型的帖子的数量。我还使用分页助手在他们的个人资料中显示所有用户的帖子。
我可以:
1) 为所有用户的帖子创建一个 find('all', $conditions) 请求,然后解析它以获得我需要的计数(通过逐个帖子检查它是否与我正在寻找的相匹配为)。
2) 进行多重 find('count', $conditions) 请求,分别获得我需要的所有计数。
3) 在创建帖子时维护用户表中的新列以跟踪这些数字(无论何时发布新帖子,这将涉及写入用户帐户)。
哪个是最佳选择?

最佳答案

从数据库中获取所有记录并在 PHP 中计算它们是非常浪费的废话。这正是数据库的用途。

find('count') 只是生成一个 SQL 查询,如 SELECT COUNT(*) FROM … WHERE …,这确实是最快的方法。添加适当的条件以获得所需的计数,您可能需要复习 SQL 以了解这些条件是什么。

还有特价counter-caching ,如果您正在计算 hasMany 关系,您可能需要研究一下。

关于php - 在 CakePHP 中查找 ('count' ) 有多贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3367833/

相关文章:

error-handling - 一些PHP错误/通知未在Slim Framework中显示调用堆栈信息

php - 插入时将额外的空白记录添加到 Mysql 数据库

php - 发布的值显示在 Firebug 中,但在尝试访问它时显示空白数组

php - 响应成功时更新我的​​表总是返回空白

php - mysqli - 我真的需要做 $result->close(); & $mysqli->close();?

php - 防止 MySQL LONGSTRING 值丢失回车符

php - CakePHP,通过一个或多个ID选择MySQL记录

mysql - CakePHP 不保存长文本

cakephp - 如何在 cakephp 中显示下拉分页数据中的选定值?

php - 是否有任何 mysql 函数不允许包含脚本标签或 html 标签的此类数据?