2010-07-29 5 views
3

나는 사용자가 가지고있는 각 유형의 게시 유형이 얼마나 많은지 계산하려고하는 CakePHP 애플리케이션을 보유하고 있습니다. 나는 또한 자신의 프로필에있는 모든 사용자의 게시물을 표시하려면 페이지 매김 도우미를 사용하고 있습니다.
다음과 같이 할 수 있습니다.
1) 모든 사용자의 게시물에 대해 find('all', $conditions) 요청을 작성한 다음 필요한 수만큼 구문 분석합니다 (게시물로 이동하여 찾고있는 내용과 일치하는지 확인).
2) 곱셈을 사용하여 개별적으로 필요한 모든 수를 얻고 find('count', $conditions) 요청을하십시오.
3) 게시물이 생성 될 때이 번호를 추적하기 위해 사용자의 테이블에 새 열을 유지합니다 (새 게시물이 작성 될 때마다 사용자 계정에 쓰는 것이 포함됩니다).
어느 것이 최선의 선택일까요?CakePHP에서 find ('count')가 얼마나 비쌉니까?

답변

7

데이터베이스의 모든 레코드를 가져 와서 PHP로 계산하면 엄청난 낭비입니다. 그것이 바로 데이터베이스가 필요한 것입니다.

find('count')은 실제로는 가장 빠른 길인 SELECT COUNT(*) FROM … WHERE …과 같은 SQL 쿼리를 만듭니다. 적절한 조건을 추가하여 원하는 카운트를 얻으십시오. 이러한 조건이 무엇인지 알기 위해 SQL을 위로 올려야 할 수도 있습니다.

또한 의 특수 문자가 있는데,이 경우 hasMany 관계를 계산하는 경우 살펴볼 수 있습니다.

+0

링크가 작동하지 않습니다. –

+0

예, 링크가 약 5 년 이상되었습니다. 나는 당신이 1.x 버전의 Cake를 더 이상 사용하지 않기를 바란다. 현재 버전에 상응하는 것이 무엇인지 모릅니다. – deceze

+0

오케이. 물론 새로운 프로젝트에 2.x 분기의 최신 버전을 사용하십시오. 이 주제에 대한 현재 링크를 찾고 업데이트하려고 노력할 것입니다. –

1

유형별로 집계하기 위해 조건별로 그룹을 포함하도록 찾기 호출을 수정해야합니다. 자세한 내용은 여기를 참조하십시오. http://debuggable.com/posts/how-to-group-by-in-cakephps-new-release-part-2:4850d2c9-edbc-4f0e-9e0e-07d64834cda3

+0

그룹화 및 계산에 유용한 정보가있는 질문이 있습니다. [CakePHP의 GROUP 및 COUNT (세)] (http://stackoverflow.com/questions/2141914/group-and-count-ages-in-cakephp) – icc97

관련 문제