国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL聯合查詢和簡單查詢究竟如何選擇?

瀏覽:98日期:2022-06-16 16:16:01

問題描述

最近看高性能MySQl,里面是推薦把聯合查詢分解為多個簡單的查詢,既然是這樣 那么還要聯合查詢干嘛?究竟是如何選擇才是效率更高的選擇呢?

問題解答

回答1:

簡單的聯合查詢一般沒有必要分解,這里所說的應該是比較復雜的聯合查詢,譬如聯合查詢3,4張表,如果查詢較為復雜,涉及到分組,排序什么的,在運行時不能有效利用索引的。甚至有可能產生臨時表。那效率就會比較差。而且不利于查詢緩存。分解后針對每個簡單的查詢,數據庫有查詢緩存機制,會更加高效。對聯合查詢的語句盡量用explain分析一下有哪些問題?針對性的去改正。該分解的時候還是要分解。

回答2:

select * from tb1left join tb2 on tb1.id=tb2.tidwhere tb1.stat=1 and tb2.stat=1 and tb1.type=1

select * from (select * from tb1 where stat=1 and type=1) as tb1left join tb2 on tb1.id=tb2.tidwhere tb2.stat=1

上面是一個簡單的案例, 其實我不是太明白你說的聯合查詢分解成多個簡單的查詢, 上面只能是我個人的一些優化(分解)方案而已(雖然也并不是每次都是這么用).

如果你所說的分解是將聯表拆成很多個語句, 然后在代碼中依次進行調用的話, 相信效率反而比聯表還低, 每次連接數據庫的 IO 開銷肯定比一次聯表來的多.

優化聯表查詢效率用一句話來說就是 用最少的正確數據進行關聯

最少的數據, 就可以通過, 在表進行關聯前, 提前將正確的數據提取出來, 避免關聯時還有很多明顯已經知道是錯誤的數據再去關聯.

無論是何種 join 方式, 這種方式都能適用.

更多的提高效率方案也還有很多像是 where 的順序, 字段類型, 索引 等等, 這個范圍就很大了.

回答3:

只要用好索引,聯合查詢沒什么問題

相關文章:
主站蜘蛛池模板: 久久久久毛片成人精品 | 日本一级在线播放线观看免 | 一级无毛片 | 性欧美巨大的视频 | 一区国严二区亚洲三区 | 毛片b| 国产精品嘿咻嘿咻在线播放 | 中文国产成人精品少久久 | 手机在线毛片 | 国产精品综合久成人 | 久久99国产亚洲精品 | 亚洲第一区香蕉_国产a | 国产亚洲人成网站在线观看 | 午夜在线亚洲男人午在线 | 亚洲成综合 | 成人毛片视频免费网站观看 | 国产在线一区观看 | 久久综合久久自在自线精品自 | 亚洲无卡视频 | 免费区欧美一级毛片 | 欧美另类高清xxxxx | 亚洲 自拍 欧美 综合 | 天堂一区二区在线观看 | 91国语精品自产拍在线观看一 | 自拍在线 | 400部大量精品情侣网站 | 国产一区二区三区视频在线观看 | 天天看片日本 | 欧美xxxxx色视频在线观看 | 日韩美女一级视频 | 97久草| 三级网站视频在线观看 | 亚洲一区免费在线 | 久99久精品视频免费观看v | 男女视频免费网站 | 亚洲欧美激情精品一区二区 | 手机看片福利视频 | 日韩毛片免费在线观看 | 国产精品久久久久无码av | 91久久精品国产91久久性色tv | 亚洲精品一区二区久久这里 |