mysql多表查詢+分頁如何?最優?

來源:互聯網
上載者:User
問的並不是如何聯集查詢,只是看到有人說對於大資料量來說最好不要使用多表聯集查詢,因此想要知道怎樣寫sql從多表擷取分頁好的資料列表才是最優的。
補充:假如有兩張表:A表是主表、而B表中的資料是查詢A表的篩選條件之一

回複內容:

問的並不是如何聯集查詢,只是看到有人說對於大資料量來說最好不要使用多表聯集查詢,因此想要知道怎樣寫sql從多表擷取分頁好的資料列表才是最優的。
補充:假如有兩張表:A表是主表、而B表中的資料是查詢A表的篩選條件之一

先查出一張表記錄的ids,然後用在另一張表使用 in 查詢

沒有具體的業務情境談最佳化都是耍流氓啊.
在A表增加B表的冗餘欄位,直接在A表上做查詢就可以取到一頁的內容,並且關聯的B表的其他資訊也能直接取到,或者通過B表的id能在緩衝中取到.

這樣的最佳化會增加維護成本,但是範式層級越低,查詢效率越高.

僅供參考.

有些特殊業務情境是必須要用聯集查詢的吧。不能單純的盲目最佳化。
ids in查詢,如果ids取出來就幾萬個。那還不如直接聯集查詢呢。雖然這方案很好。

最佳化是指在不影響業務的前提下,如果只是為了最佳化而最佳化就╮(╯▽╰)╭

分頁可以參考http://segmentfault.com/q/10100000001...

至於最佳化查詢,本質上說,先要最佳化資料結構,仔細想想你是否必須非要用兩個表,一個行不行。還有你對資料庫內建函數的瞭解程度,比如left(), right(), substring(), substring_index()。還有 mid(), substr()。不要動不動就LIKE等等,主要還是多寫,根據實際應用情境來做出最優判斷。

順便一說MYSQL配置本身也可以進行很多最佳化,比如query_cache等等

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.