性色xxx-性色欧美xo影院-性性欧美-性夜影院爽黄a爽免费看网站-久青草国产观看在线视频-久青草国产免费观看

推廣 熱搜: 廣場  Java  app  Word  營業  微信公眾號  北京代理記賬  商城  代理記賬  商標交易 

mysql用in查詢大量數據 mysql中in嵌套select只能查詢出一個結果?

   2023-04-28 企業服務招財貓120
核心提示:我我從未見過如此松散的筆跡...每當你執行以下是sqlserver數據庫的一個示例。select*fromtableawherebin(selectbfromtableagroupbybhavingc

我我從未見過如此松散的筆跡...每當你執行

以下是sqlserver數據庫的一個示例。

select*fromtableawherebin(selectbfromtableagroupbybhavingcount(b)gt1)這樣就列出了b字段中所有重復的數據,你可以根據對應的行號得到行號。

如果要查詢字段A或字段C的重復數據,可以相應地將上述字段B替換為字段A或字段C。例如:

1.創建表stud:select*fromstudentwherenamein(selectnamefromstudentgroupbynamehavingcount(

1.從MySQL5.6版本5.6開始,其中in已經過優化,并且是索引的。當你用EXPLAIN分析你的SQL的時候,你會發現所有的類型都是range,也就是說你使用索引范圍,通過索引字段range查詢得到表中的一些數據記錄。

2.在MySQL5.5版本中,雖然wherein不會取索引,但是這個版本在以下情況下優化了wherein,比如select*fromaWHEREIDIN(selecta_IDfromb)會優化為select*fromaWHEREexists(select*fromb

我來說說這個問題:

題目提到的查詢應該是這樣的:select*fromawhereidin(selectidfromb)。

對于這個sql語句,它的執行計劃不是先查詢表B的所有id,然后再與表A的id進行比較會將in子查詢轉換成現有的相關子查詢,所以實際上相當于這個sql語句:select*fromawhereexists(select*fromb循環出表A中的每一條記錄并與表B進行比較,比較的條件是看表A中每一條記錄的id是否存在于表B中,如果存在,則返回表A中的這條記錄..

exists查詢的缺點是什么?

根據exists的實現原理,表A(外觀)不能被索引,必須掃描整個表,因為表A的數據在表B中查,而你必須用表A的數據在表B中查(從外到內),順序是固定的。

如何優化?

索引。但是從上面的分析可以看出,索引只能建立在表B的id字段中,而不能建立在表A的id中,mysql可以不要用它。

這樣優化就夠了嗎?Itit'還是有點短。

因為exists查詢其執行計劃,所以它只能將表A中的數據取到表B中(從表外到表內),盡管它可以在表B的id字段中建立索引以提高查詢效率。

然而,你可以t從表B到表A依次取數據,exists子查詢的查詢順序是固定的。

為什么反過來呢?

因為你首先可以確定的是,反過來的結果是一樣的。這就引出了一個更詳細的問題:當兩個表的id字段都有索引時,是表A查表B的效率高還是表B查表A的效率高?

如何進一步優化?

將查詢修改為innerjoin連接查詢:select*fromaninnerjoinbon(但這還不夠,再往下看)。

為什么不用左連接和右連接?

此時,表之間的連接順序是固定的,

例如,左連接意味著必須先檢查左表并掃描整個表,然后逐個轉到另一個表,右連接也是如此。仍然不是最佳選擇。

為什么我可以只使用內部連接?

內連接中的兩個表,比如A內連接B,但是實際執行順序和寫的順序無關,最后執行的可能是B連接A,順序不固定。如果on條件字段有索引,也可以使用較高的索引。

那怎么才能知道A和B的執行順序哪個更有效率呢?

你不我不知道,我也不知道。誰知道呢?Mysql知道的。讓mysql自己判斷(查詢優化器)。mysql查詢優化器將評估每個案例的成本,并最終選擇最佳的一個作為執行計劃。

在內心在join連接中,mysql將評估是使用表A查找表B更高效,還是使用表B查找表A更高效。如果兩個表都有索引,mysql還將評估表A的條件字段上的索引效率是更高還是更高..

我們需要做的是對兩個表的連接條件的兩個字段進行索引,然后解釋,檢查執行計劃,看mysql使用了哪個索引,最后去掉沒有使用索引的表的字段索引。

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  冀ICP備2023006999號-8
 
主站蜘蛛池模板: 97国产在线视频 | 久久综合综合久久狠狠狠97色 | 成年视频网站免费观看 | 美国一级片在线观看 | 影院亚洲 | 日本韩国在线观看 | 国产国产精品人在线视 | 91短视频在线免费观看 | 成人网18网站 | 一本加勒比dvd波多野结衣 | 欧美mv日韩mv国产mv网站 | 国产在线黄色 | 日本狠狠操| 亚洲爆乳无码一区二区三区 | 一级片a级片 | 一个人看的免费在线视频 | 看成年女人免费午夜视频 | 毛片免费观看成人 | 国产级a爱做片免费观看 | 日本免费一区二区三区中文 | 男女很黄很色床视频网站免 | 亚洲 欧美 国产 中文 | 欧美不卡精品中文字幕日韩 | 日本aⅴ在线不卡免费观看 日本aaa大片 | 欧美高清免费一级在线 | 96xxxxx日本人 | 视频在线18羞羞 | 99资源在线 | 欧美日韩伦理 | 色爱区综合激情五月综合激情 | 欧美在线观看免费一区视频 | 香蕉网在线观看 | 一级毛片特级毛片免费的 | 黄色三级毛片 | 欧美在线观看日韩欧美在线观看 | 色综合久久精品中文字幕 | 免费看三级黄色片 | 一个人看的免费高清视频www | 亚州三级 | 日韩久久中文字幕 | 日本一本高清视频 |