кроспост http://toster.ru/q/106347 Задавался ли кто таким вопросом? Думаю ответы будут полезны не только мне. на текущий момент догадался лишь до такого Код (Text): private function _getCount($root=true){ $criteria = new CDbCriteria(); $criteria->addCondition('parent_id IS '.($root ? '' : ' NOT ').' NULL'); $criteria->addCondition('category_id IN ( SELECT id FROM forum_categories WHERE _left >= :left AND _right<= :right AND _root= :root)' ); $criteria->params[':left'] = $this->_left; $criteria->params[':right'] = $this->_right; $criteria->params[':root'] = $this->_root; return YiiForumPost::model()->count($criteria); } public function getCountTopics(){ return $this->_getCount(); } public function getCountPosts(){ return $this->_getCount(true); } в данном примере в yii используется геттер countTopics(), countPosts() при вызове одного из них происходит выборка всех веток текущего корня. затем просто считаются все документы в этих ветках. при показе всего дерева, данный гетер будет вызываться в каждой строке, а это кол-во запросов равно кол-ву веток. что не очень хорошо ) есть ли какие еще идеи? пока писал додумал денормализацию провести и хранить счетчики в доп поле категорий.