我有多個包含管視頻信息的表。我需要加入這三個表格並獲取所需的列,然後按最近的時間(unix timestamp)對其進行排序。該視頻專欄有120萬條記錄,video_data有800多萬條記錄,Tube僅有22條記錄。MySQL ORDER BY殺死我的SQL查詢
此查詢工作正常沒有ORDER BY部分:
SELECT vd.video_id,vd.tube_id,V *,t.tube_title,t.tube_domain FROM video_data VD JOIN視頻V ON VD。 VIDEO_ID = v.video_id JOIN管t ON vd.tube_id = t.tube_id LIMIT 100
上述查詢了0.0002秒
然而,一旦我想按時間戳排序,如果服務器未首先重置,則需要4-5分鐘才能運行。
SELECT vd.video_id,vd.tube_id,V *,t.tube_title,t.tube_domain FROM video_data VD JOIN視頻V ON vd.video_id = v.video_id JOIN管t ON vd.tube_id = t.tube_id ORDER BY v.date_timestamp DESC LIMIT 100
上述查詢了272.9157秒
我增加了一個索引到v.date_timestamp場,看看是否會有所幫助,但顯然它不是。也許把這個專欄的索引毫無意義?任何幫助將是偉大的,我還是相當新的SQL ...
嘗試SELECT ... FROM video_data JOIN視頻v USE INDEX(your_index)... – Zaffy