powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите ускорить запросы
10 сообщений из 10, страница 1 из 1
помогите ускорить запросы
    #39795654
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
знатоки, нужна помощь

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT p.product_id
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
WHERE p.status = '1'
  AND p.date_available <= NOW()
  AND p2c.category_id = '1564'
ORDER BY p.price ASC
LIMIT 0,
      12
12 rows (0.227 s)



explain
Код: plaintext
1.
2.
3.
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	p2c	ref	PRIMARY,category_id	category_id	4	const	26359	100.00	Using temporary; Using filesort
1	SIMPLE	p	eq_ref	PRIMARY	PRIMARY	4	***.p2c.product_id	1	100.00	Using where

иногда нужно добавлять oc_product_description с сортировкой по LCASE(pd.name)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT p.product_id
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id)
WHERE p.status = '1'
  AND p.date_available <= NOW()
  AND p2c.category_id = '1564'
ORDER BY          LCASE(pd.name) ASC
LIMIT 0,
      12
12 rows (0.556 s)




Код: plaintext
1.
2.
3.
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	p2c	ref	PRIMARY,category_id	category_id	4	const	26359	100.00	Using temporary; Using filesort
1	SIMPLE	p	eq_ref	PRIMARY	PRIMARY	4	***.p2c.product_id	1	100.00	Using where
1	SIMPLE	pd	ref	PRIMARY	PRIMARY	4	***.p2c.product_id	1	100.00	 

можно ли каким-то образом ускорить эти запросы?
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795678
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделать индексы p2c
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795686
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
show create table oc_product
Код: plsql
1.
2.
  PRIMARY KEY (`product_id`),
  KEY `price` (`price`)



show create table oc_product_to_category
Код: plsql
1.
2.
 PRIMARY KEY (`product_id`,`category_id`),
  KEY `category_id` (`category_id`)



show create table oc_product_description
Код: plsql
1.
2.
3.
 PRIMARY KEY (`product_id`,`language_id`),
  KEY `name` (`name`),
  KEY `language_id` (`language_id`)
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795687
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowсделать индексы p2c
тормоза начинаются когда добавляю сортировку по полям из join таблицы.
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795689
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафига тут LEFT JOIN, когда они вырождаются в INNER JOIN? чтобы сервер лишнего попыхтел?
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795695
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavlickmScareCrowсделать индексы p2c
тормоза начинаются когда добавляю сортировку по полям из join таблицы.
да, потому что "Using temporary; Using filesort".
значит нет нужных индексов.
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795747
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

c INNER ситуация та же
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39795748
pavlickm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowpavlickmпропущено...

тормоза начинаются когда добавляю сортировку по полям из join таблицы.
да, потому что "Using temporary; Using filesort".
значит нет нужных индексов.

какие индексы мне следует добавить?
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39796088
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavlickmc INNER ситуация та жеУгу... только вот план - штука относительная, а не абсолютная. И в случае с INNER JOIN из реального выполнения выпадает этап добавления фэйковых записей, что ускоряет запрос - в плане это отражаться не будет.
...
Рейтинг: 0 / 0
помогите ускорить запросы
    #39796276
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pavlickm,
может стоит еще ограничить date_available вменяемым значением снизу?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите ускорить запросы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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