BDSG
Постоялец
- Регистрация
- 28 Фев 2009
- Сообщения
- 203
- Реакции
- 110
ну дык..
1. делаешь составной индекс на films: films_rating_id_idx (rating, id)
2. запрос переписываешь так:
3. поскольку mysql не умеет работать с окнами (aka COUNT(*) OVER() в postgresl или oracle), общее кол-во (правда, по ходу, примерное) берёшь из explain этого запроса..
вообще, имхо, для таких объемов и задачь лучше посмотреть в сторону более серьезных субд.. той же postgresql, например.. поверь, гимор с переходом сто раз окупится..
1. делаешь составной индекс на films: films_rating_id_idx (rating, id)
2. запрос переписываешь так:
Код:
SELECT *
FROM product
JOIN cat ON cat.product_id = product.id
WHERE cat.id= 666 AND rating > 10 AND id > 20 -- конкретные значения передаются извне
ORDER BY rating ASC, id
LIMIT 20
вообще, имхо, для таких объемов и задачь лучше посмотреть в сторону более серьезных субд.. той же postgresql, например.. поверь, гимор с переходом сто раз окупится..