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

來源:互聯網
上載者:User
不清楚哪種解決方案好
在書上看到說是 一般都是分表查詢,有利於緩衝

回複內容:

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

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

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

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

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.