Дополнительный запрос к каждому топику

Приветствую, сообщество и разработчики AltoCMS. Поясните, пожалуйста, один момент.

У меня при включенном кеше на главной странице при 10 выведенных топиках (без фото, только название и одно доп.поле), судя по статистике, отрабатывает 21 запрос в базу. Если глянуть в логи запросов, то там 20 запросов вида
SELECT mr.mresource_id AS ARRAY_KEY, mrt.target_type, mrt.target_id, mr.* FROM cs_mresource AS mr, cs_mresource_target as mrt WHERE 1=1 AND ((target_type IN ('photoset'))) AND mrt.mresource_id = mr.mresource_id AND (mr.type & 64)>0 AND mrt.target_type IN ('photoset') AND mrt.target_id = 16 ORDER BY sort DESC, mresource_id ASC LIMIT 0, 1

По 2 на каждый топик из 10.
Если в функции GetTopicsAdditionalData модуля Topic закомментировать строки
if ($oTopic->getPhotosetMainPhotoId()) {
                $aPhotoMainId[] = $oTopic->getPhotosetMainPhotoId();
            }

то запросов станет на 10 меньше.

Соответственно несколько вопросов:
1. Где еще и почему в движке идет по два одинаковых запроса к базе к каждому топику?
2. Мне не нужны фотосеты в проекте, и у топиков есть только названия, текст и одно дополнительное поле. Как можно убрать лишние запросы к мультимедиа-ресурсам?
3. Как можно заняться отладкой работы кеша? Почему-то мне кажется, что еще сегодня утром у меня на главной был только 1 запрос при включенном кеше.

Похожие статьи

  • Как вставить блок между топиками?
    Всем привет! Столкнулся с такой проблемой: На странице есть 10 топиков, например. Мне необходимо вставить блок между 4 и 5 топиками. Как мне это сделать? Понятное дело, что необходимо будет править шаблон — это не...
  • Разделить топики по разным лентам
    Всем доброго времени. Создаю топики с разными типами контента: новости, фотографии, видео и тд. Подскажите, как можно разделить топики, чтобы они выводились в зависимости от типа контента? Может надо изменить это...
  • [dev] Переопределение сортировки топиков
    Статья предназначена для разработчиков плагинов и рассказывает о некоторых новых возможностях, появившихся в версии 1.1. Если быть более точным, то коммит с изменениями был залит в текущую ветку менее суток назад. Но ...
  • Изображения и публикации
    В альфа версии каждое изображение считается публикацией. Мне кажется что это как то не совсем корректно или непривычно. Ну посудите сами, пользователь загрузил в топик 40 фоток и у него 43 публикации: 1 аватарка, 1...

10 комментариев

0
Очень хороший вопрос. Могу от себя добавить что у меня есть ощущение по всем косвенным данным, что кеш действительно работает как-то неоптимально, пропуская большой поток обращений к БД на ровном месте.
0
У тебя тормозит сайт от этого или что? Если нет, то проще на это забить. Человеческие ресурсы дороже.
Где еще и почему в движке идет по два одинаковых запроса к базе к каждому топику?
Сдаётся мне, это будешь искать сам.
0
Пока не тормозит, поскольку посетителей нет, но если будут, не хотелось бы на каждое посещение иметь по 20 запросов, особенно на главной.
0
Насчет дублирующих запросов я, конечно, гляну.

Но вот вообще насчет фотосета — а как понять, используется у вас фотосет или нет? Где-то в глобальных настройках сайта прописывать, что фотосета нет?
0
Я создал новый тип контента и в админке снял все галки напротив фотосета, ссылки на оригинал и голосования. Может бытЬ, как-то по этому определять? (Стандартный тип статей отключил)
0
В общем случае типов контента может быть любое количество. В каких-то типах фотосеты могут быть разрешены, в других — нет. Поэтому логика получается такая: надо смотреть, есть ли хоть в каком-то типе разрешение на фотосет, и, исходя из этого, строить запрос. Подумаю…

Но на самом деле это не так важно. Гораздо важнее, что при выводе 10 топиков запрос идет для каждого топика в отдельности. По общей логике, принятой в движке, это должен быть один запрос на 10 топиков. Буду копать, что там не так.
0
Что-то не пойму. Этот запрос встречается в функции GetMresourcesByCriteria файла Mresource.mapper.class.php. Эта функция встречается только в функции GetMresourcesByCriteria модуля Mresource.class.php и функции EventMresources экшена ActionAdmin.php.

По идее, на главной ни то, ни другое не используется… Плюс на странице топика тоже есть подобный запрос и на других страницах.
0
хмм если у вас 21 то у меня 41, не одного топика, есть только 3 блога, в колонке «блоги»
, кеш отдается в Gzip
Отредактирован:
0
Не, ну при выключенном кеше у меня в районе 51 вообще.
0
тоже самое
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.