Подсчёт кол-ва галер для модели

admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Подсчёт кол-ва галер для модели

Post by admin »

попробую на сл неделе уже добавить отдельно кеш для этого тага
Don't forget to run script update
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Подсчёт кол-ва галер для модели

Post by admin »

Дошли руки внимательно продебагить эту часть и модели кешируются для страницы, нет такого того 100 галер на странице и 100 запросов на модель, думаю что просто совпадение с чем-то
предлагаю вернуть модели, скинуть шел и мускл рут что б видеть какие там запросы и проверить как будет нагрузка
Don't forget to run script update
richmantrade
Posts: 1036
Joined: Tue Dec 04, 2012 8:46 am

Re: Подсчёт кол-ва галер для модели

Post by richmantrade »

И снова Ап темы.
Значит по предыдущему вопросу, когда <model_list> вставлен в сабтемплейт, соотв-но большоек кол-во запросов в мускуль (это у меня было) .... В общем по этому отбой. Я посчитал проще убрать <model_list> вставлен в сабтемплейтах, нежели разбираться с этим.

Сейчас <model_list> только на галереях (content_custom_flv, content_custom_pic, content_page).
И вот когда нагрузка на проц нормальная - и запросы эти отрабатывают быстро. Но как только нагрузка на проц подрастает - запросы висят по 3-4 минуты.
Я прекрасно понимаю, что нужно решать проблемы с загруженным процом, и они решаются. Но я всё же хочу понять, внести ясность так сказать.
1. Почему всё же нельзя кешировать "на вечно" принадлежность модели к галерее ? Это займёт много места в кеше ? А есликешировать только основное: model_id, model_slug, model_name , а уж остальное стягивать из мускуля, если нужно. Хотя да.... как понять, что нужно. Но всё же, я бы подумал в эту сторону.

2. Запросы эти реально странные. Давайте разберём конкретный пример.
Есть у меня галерея, с gallery_id=21593. У этой галереи две модели:

Code: Select all

select * from rot_gal2model where gallery_id=21593;
+------------+----------+
| gallery_id | model_id |
+------------+----------+
|      21593 |      777 |
|      21593 |     6895 |
+------------+----------+
Но когда я прогружаю эту страницу, запрос в мускуле выглядит так:

Code: Select all

 SELECT  md.*, m.model_id as model_id, m.model_slug, m.model_name,
        gi.url, gi.gallery_id, rt.thumb_id, rt.height, rt.width, rt.thumb_url, rt.extra_thumb, rt.extra_thumb2, rt.extra_thumb3,
        m.model_total_galleries, md.model_average_ctr FROM rot_models as m   JOIN ( SELECT m2.model_id AS mod_id
                FROM rot_models AS m2
                JOIN rot_models_data as md2 ON m2.model_id = md2.model_id and site_id = '1'
                WHERE 1 = 1   AND m2.model_id IN ('553','1791')  ORDER BY  model_name  ) AS b ON b.mod_id = m.model_id  
                JOIN rot_models_data as md ON m.model_id = md.model_id and site_id = '1' LEFT JOIN rot_gallery_info as gi on gi.url = m.model_id 
                AND gi.gallery_type = 2 and gi.source_url = '1'
        LEFT JOIN rot_thumbs AS rt ON rt.gallery_id = gi.gallery_id  WHERE 1 = 1
Я пока писал, понял в чём проблема, и даже оттестил её. Вот эти вот все циферки - это айдишники моделей не только просматриваемой галереи, но и всех остальных галерей, которые есть на странице (в релейтед). Но там нет тага <model_list> - не нужно для них выбирать инфу по моделям.
Естественно, при нагруженном проце такой запрос долгоиграющий.

Code: Select all

+-----------+----------+-----------+----------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
| Id        | User     | Host      | db       | Command | Time | State        | Info                                                                                                 | Progress |
+-----------+----------+-----------+----------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
| 147923767 | srv18039 | localhost | srv18039 | Query   |    0 | Init         | show processlist                                                                                     |    0.000 |
| 148048458 | srv18039 | localhost | srv18039 | Query   |   87 | Sending data | SELECT  md.*, m.model_id as model_id, m.model_slug, m.model_name,
87сек, и более, до 4 минут. Та даже при относительно свободном проце такой запрос выполняется (у меня) 3-4 секунды.

Если же запрашивать инфу только для просматриваемой галереи (/scj/tube/?gallery_id=21593):

Code: Select all

 SELECT  md.*, m.model_id as model_id, m.model_slug, m.model_name,
        gi.url, gi.gallery_id, rt.thumb_id, rt.height, rt.width, rt.thumb_url, rt.extra_thumb, rt.extra_thumb2, rt.extra_thumb3,
        m.model_total_galleries, md.model_average_ctr FROM rot_models as m   JOIN ( SELECT m2.model_id AS mod_id
                FROM rot_models AS m2
                JOIN rot_models_data as md2 ON m2.model_id = md2.model_id and site_id = '1'
                WHERE 1 = 1   AND m2.model_id IN ('777','6895')  ORDER BY  model_name  ) AS b ON b.mod_id = m.model_id  JOIN rot_models_data as md ON m.model_id = md.model_id and site_id = '1' 
                LEFT JOIN rot_gallery_info as gi on gi.url = m.model_id AND gi.gallery_type = 2 and gi.source_url = '1'
        LEFT JOIN rot_thumbs AS rt ON rt.gallery_id = gi.gallery_id  WHERE 1 = 1
- такой запрос за секунду, даже при нагруженном проце.
Считаю это багом. Пофикстие плиз.

Так же не могу понять почему здесь дважды JOIN rot_models_data. Может я не до конца вникнул в структуру запроса, но обратите плиз внимание.
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Подсчёт кол-ва галер для модели

Post by admin »

вопрос ясен
что б было прозе тестировать скиньmt плз дамп или админку и где смотреть
Don't forget to run script update
richmantrade
Posts: 1036
Joined: Tue Dec 04, 2012 8:46 am

Re: Подсчёт кол-ва галер для модели

Post by richmantrade »

Отправил в PM
Include
Posts: 11
Joined: Tue May 28, 2019 10:33 am

Re: Подсчёт кол-ва галер для модели

Post by Include »

наконец подняли важную тему!!! Ждем апдейта
Post Reply