[英]How expensive is find('count') in CakePHP?
我有一個CakePHP應用程序,我試圖計算用戶每種類型的帖子有多少。 我也使用paginate幫助器在他們的個人資料上顯示所有用戶的帖子。
我可以:
1)對所有用戶的帖子進行find('all', $conditions)
請求,然后解析我需要的計數(通過郵寄方式發送並檢查它是否與我正在查找的內容相匹配)。
2)使multiplie find('count', $conditions)
請求,獲得我需要的所有計數。
3)維護用戶表中的新列以在創建帖子時跟蹤這些數字(放置將涉及在發布新帖子時寫入用戶帳戶)。
哪一個是最好的選擇?
從數據庫中獲取所有記錄並在PHP中計算它們是非常浪費的廢話。 這正是數據庫的用途。
find('count')
只是創建一個SQL查詢,如SELECT COUNT(*) FROM … WHERE …
,這是最快的方法。 添加適當的條件以獲得所需的計數,您可能需要刷新SQL以了解這些條件。
還有特殊的反緩存 ,如果你計算hasMany關系,你可能想要查看。
您應該修改您的查找調用以按條件包含組以按類型聚合計數。 有關詳細信息,請參閱此處: http : //debuggable.com/posts/how-to-group-by-in-cakephps-new-release-part-2 : 4850d2c9-edbc-4f0e-9e0e-07d64834cda3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.