У меня есть несколько таблиц с информацией о видео.Мне нужно объединить эти три таблицы и получить нужные столбцы, а затем отсортировать их по самым последним (временная метка Unix).В столбце видео содержится 1,2 миллиона записей, в video_data - более 8 миллионов записей, а в трубе - всего 22 записи.
Этот запрос работает нормально без части ORDER BY:
SELECT vd.video_id, vd.tube_id, v. *, t.tube_title, t.tube_domain FROM video_data vd ПРИСОЕДИНЯЙТЕСЬ к видео v ON vd.video_id = v.video_id ПРИСОЕДИНЯЙТЕСЬ к каналу t vd.tube_id = t.tube_id LIMIT 100
Вышеупомянутый запрос занял 0,0002 с
Однако, как только я хочу отсортировать по метке времени, выполняется 4-5 минут, если он не был сброшен серверомfirst.
ВЫБРАТЬ vd.video_id, vd.tube_id, v. *, t.tube_title, t.tube_domain FROM video_data vd РЕАЛЬНОЕ видео v ON vd.video_id = v.video_id ПРИСОЕДИНЯЙТЕСЬ к трубке t ON vd.tube_id = t.tube_id ORDER BY v.date_timestamp DESC LIMIT 100
Приведенный выше запрос занял 272,9157 с
Я добавил индексв поле v.date_timestamp, чтобы увидеть, поможет ли это, но, очевидно, это не так.Может быть, в любом случае указывать этот столбец бессмысленно?Любая помощь была бы великолепна, я все еще довольно новичок в SQL ...