解決or 和order by 語句查詢時間長問題

表大小
24943*24943

1.原語句
SELECT A.ID1,A.ID2,A.relation FROM element_relations as A where ID1= 17 or ID2=17 order by relation DESC limit 300;

分別建立ID1,和ID2的索引

查看索引情況

索引id1,id2未用上
查詢時間

查詢時間
2.使用union all
(SELECT A.ID1,A.ID2,A.relation FROM element_relations as A where ID1= 1 order by relation DESC limit 300) union all (SELECT A.ID1,A.ID2,A.relation FROM element_relations as A where ID2= 1 order by relation DESC limit 300) order by relation DESC limit 300;
查看索引情況
查詢時間

效果并不理想

3.重新建立索引

索引1:使用id1和relation聯合索引
索引2:使用id3和relation聯合索引
使用語句1


查看索引
查詢時間

使用語句二 order by

索引情況
查詢時間

已降為1秒左右,完美解決

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容