У меня есть две таблицы:заказ по запросу делает медленный
video (ID, TITLE, ..., UPLOADED_DATE)
join_video_category (ID (not used), ID_VIDEO_ ID_CATEGORY)
строки в видео: 4 500 000 | rows in join_video_category: 5 800 000
1 видео может иметь много категорий.
У меня есть запрос работает отлично, 20 мс максимум, чтобы получить результат:
SELECT * FROM video WHERE ID IN
(SELECT ID_VIDEO FROM join_video_category WHERE ID_CATEGORY=11)
LIMIT 1000;
Этот запрос взять 1000 видео, порядок не важен.
НО, когда я хотел бы получить 10 последних видео из категории, мой запрос взять Arround 30-40 секунд:
SELECT * FROM video WHERE ID IN
(SELECT ID_VIDEO FROM join_video_category WHERE ID_CATEGORY=11)
ORDER BY UPLOADED_DATE DESC LIMIT 10;
У меня есть индекс по ID_CATEGORY, ID_VIDEO, UPLOADED_DATE, в основном, на ID видео и join_video_category.
Я проверил его с помощью JOIN по моему запросу, это тот же результат.
ОК, я хочу добавить UPLOADED_DATE в таблицу join_video_category, спасибо за вашу помощь! – Johann