У меня есть таблица с 200 000 записей, которые я пытаюсь отфильтровать и отсортировать по некоторым условиям.
- Без
ORDER BY p.date_time desc
запрос занимает 0,078 секунды.
- С
ORDER BY p.date_time desc
требуется 2,225 секунды
Запрос:
SELECT p.*
, s.*
, (SELECT COUNT(1)
FROM gbs_comments
WHERE product_short_url = p.product_short_url
) AS comment_count
,( EXISTS
( SELECT *
FROM `gbs_likes`
WHERE `product_short_url` = p.product_short_url
AND `ip_address` = '1'
)
) AS like_status
FROM gbs_products p, gbs_store s
WHERE p.deal_type = 1
AND p.product_store = s.sid
ORDER BY p.date_time DESC
Табличные индексы:
![Screenshot of table indexes](https://i.stack.imgur.com/MOVYW.png)
Объяснить план:
![Explain Plan](https://i.stack.imgur.com/5rmMB.png)
Табличные индексы:
GBS_COMMENTS
![GBS_COMMENTS INDEX](https://i.stack.imgur.com/HY3Q3.png)
GBS_LIKES INDEX
![GBS_LIKES](https://i.stack.imgur.com/RdA6W.png)
ИНДЕКС ПРОДУКТА GBS
![GBS_PRODUCT](https://i.stack.imgur.com/VapUR.png)