powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / отпимизировать\ускорить запрос
9 сообщений из 9, страница 1 из 1
отпимизировать\ускорить запрос
    #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
отпимизировать\ускорить запрос
    #40000536
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) по pl попробовать индекс по id_product + id_lang.
2) по p можно попробовать индекс по active + id_shop_"default+id_product, но польза будет зависеть от селективности по первым двум полям.
...
Рейтинг: 0 / 0
отпимизировать\ускорить запрос
    #40000569
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это называется "угадайте, в какой таблице лежит price ".

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

Я сделал похожий запрос на неиндексированной таблице в миллион строк без виртуальных функций, у меня исполнилось за секунду.
Если убрать JOIN, будет работать быстрее?
Когда у меня однажды был необычно медленный джойн, проблема оказалась с испорченными индексами.
...
Рейтинг: 0 / 0
отпимизировать\ускорить запрос
    #40001252
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в квери кэш этот запрос запихать. сделать табличку с результатами этого запроса и обновлять раз в 10 минут.
...
Рейтинг: 0 / 0
отпимизировать\ускорить запрос
    #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
отпимизировать\ускорить запрос
    #40003791
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte

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


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

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


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