首頁  >  文章  >  後端開發  >  Thinkphp中mysql兩表查詢用in ids還是left join(分頁的狀況,ids陣列一般20個左右)?

Thinkphp中mysql兩表查詢用in ids還是left join(分頁的狀況,ids陣列一般20個左右)?

WBOY
WBOY原創
2016-12-05 13:44:221422瀏覽

不清楚哪種解決方案好
在書上看到說是 一般都是分錶查詢,有利於快取

回覆內容:

不清楚哪種解決方案好
在書上看到說是 一般都是分錶查詢,有利於快取

主要看資料量,以及應用場景,資料量小情況下,倆差不多
where in()查詢還是多表 left join 聯合查詢,哪個效率會更好點?

你這是在說一個SQL問題,使用left join 遠遠超過 使用in 的人。

這兩個的語法使用的場景是不一樣的,in是知道了id去篩選出符合你id組的記錄,而left join是關聯表。如果是我做分頁的話,看關聯的表是不是大表(幾十萬上百萬記錄),再決定是否使用left join ,即使是使用join最好explain一下看看是不是達到最優了,沒有的話,看看explain結果進行最佳化一下。建議超大表不要join;用in的話,提取id和查詢副表組裝資料進入主表資料集的時候不要多重循環,效率也看不見得慢到哪裡去。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn