Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / отпимизировать\ускорить запрос / 9 сообщений из 9, страница 1 из 1
05.09.2020, 16:02
    #39995903
zizi_top
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
Код: sql
1.
2.
3.
4.
SELECT MIN(`price`) as min, MAX(`price`) as max FROM `tbl_product` p
           INNER JOIN `tbl_product_lang` pl ON (p.`id_product` = pl.`id_product`)
           WHERE p.`active` = 1 AND p.`id_shop_default` = 1 AND
           pl.`id_lang` = 1



запрос выполняется 2 секунды,и таких запросов штук 10 постоянно висит, отсюда большая нагрузка на проц и большой LA(но не уверен)
что можно сделать?
...
Рейтинг: 0 / 0
19.09.2020, 16:53
    #40000536
Megabyte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
1) по pl попробовать индекс по id_product + id_lang.
2) по p можно попробовать индекс по active + id_shop_"default+id_product, но польза будет зависеть от селективности по первым двум полям.
...
Рейтинг: 0 / 0
19.09.2020, 21:11
    #40000569
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
Это называется "угадайте, в какой таблице лежит price ".

DDL обеих таблиц - в студию.
...
Рейтинг: 0 / 0
19.09.2020, 22:24
    #40000585
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
Запрос выглядит достаточно просто просто, нечего добавить/убавить.

Я сделал похожий запрос на неиндексированной таблице в миллион строк без виртуальных функций, у меня исполнилось за секунду.
Если убрать JOIN, будет работать быстрее?
Когда у меня однажды был необычно медленный джойн, проблема оказалась с испорченными индексами.
...
Рейтинг: 0 / 0
22.09.2020, 12:46
    #40001252
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
в квери кэш этот запрос запихать. сделать табличку с результатами этого запроса и обновлять раз в 10 минут.
...
Рейтинг: 0 / 0
29.09.2020, 09:41
    #40003788
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
zizi_top,

EXPLAIN как-то изменится если переставить слегка:
Код: sql
1.
2.
3.
4.
SELECT MIN(`price`) as min, MAX(`price`) as max
FROM `tbl_product` p
INNER JOIN `tbl_product_lang` pl ON (pl.`id_lang` = 1) AND (p.`id_product` = pl.`id_product`)
WHERE p.`active` = 1 AND p.`id_shop_default` = 1 AND



, но боюсь что нет. Навешать доп. ключик Вам уже посоветовали, но надо смотреть его селективность, и при необходимости можно приколотить к запросу явно.
...
Рейтинг: 0 / 0
29.09.2020, 09:45
    #40003791
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
Megabyte

1) по pl попробовать индекс по id_product + id_lang.
2) по p можно попробовать индекс по active + id_shop_"default+id_product, но польза будет зависеть от селективности по первым двум полям.


Второй ключ, скорее всего стоит переставить поля как id_shop_default + active т.к. подзреваю что у поля active состояний совсем не много (живой/нет товар) и его селективность никакущая.
...
Рейтинг: 0 / 0
29.09.2020, 14:32
    #40003992
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
Arhat109
EXPLAIN как-то изменится если переставить слегка
Если учесть, как MySQL парсит запросы (первое, что он сделает - это отправит все условия во WHERE) - не изменится даже теоретически.
...
Рейтинг: 0 / 0
29.09.2020, 17:57
    #40004090
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отпимизировать\ускорить запрос
Akina, скорее всего так и будет.

Тогда остается игра с ключами: смотреть их селективность и подбирать оптимальный. И если выбирается "не торт", то прибивать гвоздями к запросу. :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / отпимизировать\ускорить запрос / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]