Page 1 of 2

Медленный запрос (видимо в ротаторе)

Posted: Thu Dec 02, 2021 11:56 am
by anton.sivanov2
Добрый день.
Мы с вами пытались разобраться с медленным запросом тут
Сейчас есть схожая ситуация. Есть запрос:

Code: Select all

SELECT gt.tag_id, t.tag_name as tag_name, count(*) as hits FROM rot_gal2tag AS gt left join rot_tags as t on t.tag_id = gt.tag_id WHERE t.status = 'active' and gt.site_id = 59 GROUP BY gt.tag_id;
и он работает 7 секунд.

Code: Select all

SELECT gt.tag_id, t.tag_name as tag_name, count(*) as hits FROM rot_gal2tag AS gt force index(tag_id) left join rot_tags as t on t.tag_id = gt.tag_id WHERE t.status = 'active' and gt.site_id = 59 GROUP BY gt.tag_id;
с указанием же индекса работает великолепно (0,07)

Почему мускуль игнорирует имеющийся индекс - идей нет(

Re: Медленный запрос (видимо в ротаторе)

Posted: Thu Dec 02, 2021 3:35 pm
by admin
Добрый

а попробуйте перевести в myisam для теста

Re: Медленный запрос (видимо в ротаторе)

Posted: Mon Dec 06, 2021 12:08 pm
by anton.sivanov2
ничего не меняется

Re: Медленный запрос (видимо в ротаторе)

Posted: Mon Dec 06, 2021 1:25 pm
by admin
в гугле есть кучка вариантов ответов почему мускл может игнорировать индекс
я конечно не знаю почему в конкретно вашем случае это происходит

для решения ситуация я просто добавил в запрос форсирование инедкса, посмотрим на последствия )

Re: Медленный запрос (видимо в ротаторе)

Posted: Wed Jan 12, 2022 6:45 pm
by anton.sivanov2

Code: Select all

SELECT   gs.gallery_id, gs.thumb_id, gi.sponsor_id, gi.content_count, gi.content_type, gs.total_shows, gs.total_clicks, gs.total_ctr, gt.thumb_url, gd.*, gi.content_count, gi.crop_profile_id, gs.activation_date, gi.added_date, gi.duration, gi.url, gi.gallery_total_shows, gi.sponsor_id, gi.source_url, gi.custom_gallery  FROM rot_gallery_stats34 as gs  FORCE INDEX (group_id)   JOIN  rot_gallery_info as gi on gi.gallery_id = gs.gallery_id
 JOIN  rot_gallery_data32 as gd on gd.gallery_id = gs.gallery_id
  JOIN rot_thumbs as gt on gt.thumb_id = gs.thumb_id 
			WHERE 1 = 1  AND gi.gallery_status = 'active'  AND gi.gallery_type = 0  and gs.best_thumb = 'yes'  and gs.group_id IN (170)  ORDER BY  tested_thumb DESC,  gs.total_ctr DESC  LIMIT 0, 80
сейчас запрос безбожно тупит. Что можно сделать?

Re: Медленный запрос (видимо в ротаторе)

Posted: Wed Jan 12, 2022 6:56 pm
by admin
апдейт не помогает?
что говорит explain в мускле?

Re: Медленный запрос (видимо в ротаторе)

Posted: Wed Jan 12, 2022 7:11 pm
by anton.sivanov2
обновили на свежую версию - не помогло.

Re: Медленный запрос (видимо в ротаторе)

Posted: Wed Jan 12, 2022 7:12 pm
by anton.sivanov2

Code: Select all

+----+-------------+-------+------------+--------+------------------------------------------------+--------------+---------+------------------------+------+----------+----------------------------------------------+
| id | select_type | table | partitions | type   | possible_keys                                  | key          | key_len | ref                    | rows | filtered | Extra                                        |
+----+-------------+-------+------------+--------+------------------------------------------------+--------------+---------+------------------------+------+----------+----------------------------------------------+
|  1 | SIMPLE      | gi    | NULL       | ref    | PRIMARY,sponsor_id,gallery_type,gallery_status | gallery_type | 1       | const                  |    1 |   100.00 | Using where; Using temporary; Using filesort |
|  1 | SIMPLE      | gd    | NULL       | eq_ref | PRIMARY                                        | PRIMARY      | 4       | adamporn.gi.gallery_id |    1 |   100.00 | NULL                                         |
|  1 | SIMPLE      | gs    | NULL       | ref    | group_id                                       | group_id     | 3       | const,const            |  692 |     0.01 | Using index condition                        |
|  1 | SIMPLE      | gt    | NULL       | eq_ref | PRIMARY                                        | PRIMARY      | 4       | adamporn.gs.thumb_id   |    1 |   100.00 | NULL                                         |
+----+-------------+-------+------------+--------+------------------------------------------------+--------------+---------+------------------------+------+----------+----------------------------------------------+

Re: Медленный запрос (видимо в ротаторе)

Posted: Thu Jan 13, 2022 4:25 am
by admin
так тут же идеальный explain
692 строки перебора это копейки
думаю сервак просто перегружен

Re: Медленный запрос (видимо в ротаторе)

Posted: Thu Jan 13, 2022 4:35 am
by anton.sivanov2
такое происходит и после ребута. запросы встают в очередь (там несколько сиджеев). по итогу набирается около 1000 запросов, которые не могут исполнится. при этом кол-во строк более 35К в explain я не видел. Но запрос выполняется очень медленно.