日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

mysql - 對于這兩句sql,一個是用or,一個是用union all,性能應該是后面的好吧?

瀏覽:226日期:2022-06-12 14:14:58

問題描述

explain select * from ecs_ad where ad_id =1 or ad_id = 3;+----+-------------+--------+-------+---------------+---------+---------+------+------+-----------------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+--------+-------+---------------+---------+---------+------+------+-----------------------+| 1 | SIMPLE | ecs_ad | range | PRIMARY | PRIMARY | 2 | NULL | 2 | Using index condition |+----+-------------+--------+-------+---------------+---------+---------+------+------+-----------------------+1 row in set

這是union all的

explain select * from ecs_ad where ad_id = 4 union all select * from ecs_ad where ad_id = 3;+------+--------------+------------+-------+---------------+---------+---------+-------+------+-----------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+------+--------------+------------+-------+---------------+---------+---------+-------+------+-----------------+| 1 | PRIMARY | ecs_ad | const | PRIMARY | PRIMARY | 2 | const | 1 | NULL || 2 | UNION| ecs_ad | const | PRIMARY | PRIMARY | 2 | const | 1 | NULL || NULL | UNION RESULT | <union1,2> | ALL | NULL | NULL | NULL | NULL | NULL | Using temporary |+------+--------------+------------+-------+---------------+---------+---------+-------+------+-----------------+3 rows in set

問題解答

回答1:

首先,這兩個查詢性能差距應該不大。因為 ad_id 列是主鍵.

根據 type 列分析:or 查詢,type:rangeunion all 查詢:type:const / const / ALL

首先可以確認的是,const 要優于 range.const 也是因為 ad_id 為主鍵.

但是 union all 做了三次操作,兩次主鍵或者唯一索引查詢 type:const,但最后組合到一起時 type:ALLtype:ALL 本身性能比 range 還要差

從 Type 看,or 查詢性能應該更好.

Extra 分析or 查詢:Using index conditionunion all 查詢:NULL / NULL / Using temporary

Using index condition 為 MySQL 5.6 版本以后新添加的特性,索引條件推送。

首先說一下沒有索引條件推送時候的處理流程:

優化器沒有使用ICP時,數據訪問和提取的過程如下:

1) 當storage engine讀取下一行時,首先讀取索引元組(index tuple),然后使用索引元組在基表中(base table)定位和讀取整行數據。2) sever層評估where條件,如果該行數據滿足where條件則使用,否則丟棄。3) 執行1),直到最后一行數據。

當存在索引條件推送時候的處理流程:

優化器使用ICP時,server層將會把能夠通過使用索引進行評估的where條件下推到storage engine層。數據訪問和提取過程如下:

1) storage engine從索引中讀取下一條索引元組。2) storage engine使用索引元組評估下推的索引條件。如果沒有滿足wehere條件,storage engine將會處理下一條索引元組(回到上一步)。只有當索引元組滿足下推的索引條件的時候,才會繼續去基表中讀取數據。3) 如果滿足下推的索引條件,storage engine通過索引元組定位基表的行和讀取整行數據并返回給server層。4) server層評估沒有被下推到storage engine層的where條件,如果該行數據滿足where條件則使用,否則丟棄。

簡單來說,沒有 ICP 時,存儲引擎返回所有滿足條件的整行數據,在 service 層進行 where 條件過濾。有 ICP 時,where 條件下推到存儲引擎層,存儲引擎直接返回滿足條件的數據。性能自然提高很多。

對于 ICP 的相關介紹,可以查看這里

而 Using temporary 表示隱式臨時表,意思是 MySQL 會在產生一個臨時表,存放中間數據。因為 union all 是分開處理,最后合并的關系。從 Extra 看,也應該是 or 查詢性能更高。

綜合來看:OR 查詢的性能應該有優于 UNION ALL .

由于所有查詢性能都隨著數據量增大而變化,以上分析只是單看題主所貼的 Explain 分析結果。也并不是說 OR 在所有情況下都優于 UNION ALL。

以上為個人意見,如有錯誤,請指正。

回答2:

這兩個語句,無區別。一般or連接兩個不同字段,無法使用索引的時候,性能會比較差,不如union,可以嘗試修改。

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av一级| 欧美亚洲精品在线| 最新亚洲国产| 日本成人中文字幕| 国产精品www.| 黄色aa久久| 婷婷综合社区| 亚洲精品国产精品粉嫩| 国产日韩欧美高清免费| 国产精品大片免费观看| jizzjizz中国精品麻豆| 久久久天天操| 蜜臀va亚洲va欧美va天堂| 日韩欧美三区| 97精品国产福利一区二区三区| 亚洲成人一区在线观看| 国产精品人人爽人人做我的可爱| 亚洲a成人v| 欧美国产中文高清| 日韩精品首页| 四虎成人精品一区二区免费网站| 欧美在线日韩| 欧美天堂视频| 三级欧美在线一区| 国产日韩中文在线中文字幕| 国产一二在线播放| 蜜桃一区二区三区在线| 国产伦精品一区二区三区千人斩| 国产精品久久久久77777丨| 亚洲精品一区三区三区在线观看| 免费看黄色91| 国产成人77亚洲精品www| 中文日韩欧美| 日韩精品dvd| 婷婷五月色综合香五月| 精品国产一级| 日韩影院免费视频| 精品视频一区二区三区在线观看 | 亚洲一区日韩在线| 久久av偷拍| 国产偷自视频区视频一区二区| 国产精品高清一区二区| 国产精品日韩| 9999国产精品| 欧美日韩国产一区二区在线观看| 999久久久免费精品国产| 欧美一区不卡| 欧美成人亚洲| 欧美国产精品| 蜜臀精品一区二区三区在线观看 | 国产一区国产二区国产三区| 久久亚洲风情| 免费看av不卡| 国产亚洲欧美日韩在线观看一区二区| 亚洲性图久久| 麻豆国产精品视频| 日本午夜精品一区二区三区电影 | 热三久草你在线| 国产色99精品9i| 首页国产欧美日韩丝袜| 久久久久亚洲| 国产一区二区三区黄网站| 亚洲乱码视频| 蜜桃视频欧美| 久久久亚洲一区| 超碰99在线| 久久一区国产| 国产精品分类| 日韩高清不卡一区二区| 亚洲在线国产日韩欧美| 久久久久99| 热三久草你在线| 欧美91在线| 国产免费播放一区二区| 日韩和欧美的一区| 亚洲精品乱码久久久久久蜜桃麻豆| 狠狠干综合网| 亚洲高清影视| 精品欧美久久| 国产一区亚洲| 欧美日韩四区| 亚洲激情另类| 国产亚洲精品自拍| 国产一区久久| 美女网站一区| 在线一区视频| 香蕉成人久久| 一区二区电影| 天堂精品久久久久| 最新亚洲国产| 日韩精品视频一区二区三区| 亚洲不卡视频| 97精品国产99久久久久久免费| 婷婷综合国产| 国产探花一区在线观看| 国产调教精品| 欧美aa在线视频| 高清av一区| 国产va在线视频| 99精品美女| 欧美精品一线| 视频一区二区中文字幕| 日韩欧美美女在线观看| 国产伦一区二区三区| 美日韩一区二区三区| 久久久国产精品网站| 国产96在线亚洲| 99久久精品网站| 亚洲综合二区| 欧美一区二区三区免费看| 国产精品亚洲综合久久| 精品午夜久久| 另类中文字幕国产精品| 蜜桃视频欧美| 亚洲精品自拍| 久久99影视| 色综合www| 免费人成精品欧美精品| 国产精品尤物| 久久毛片亚洲| 亚洲激情偷拍| 国产三级一区| 播放一区二区| 亚洲开心激情| 你懂的国产精品永久在线| 中文字幕在线视频久| 99riav国产精品| 国产美女久久| 欧洲一区二区三区精品| 国产亚洲高清视频| 国产精品久久久久久久久久久久久久久| 色婷婷色综合| 亚洲影院天堂中文av色| 国产精品一区三区在线观看| av资源中文在线| 99亚洲精品| 久久av资源| 亚洲免费高清| 精品一区91| 视频一区二区三区中文字幕| 国产美女亚洲精品7777| 亚洲福利专区| 国产精品成人**免费视频| 欧美手机在线| 国产日韩亚洲| 亚洲激情欧美| 精品99在线| 蜜桃av一区二区三区电影| 久久精品欧洲| 亚洲影院天堂中文av色| 色婷婷综合网| 青青草伊人久久| 欧美特黄一区| 亚洲黄色免费看| 欧美一区免费| 亚洲欧洲一区| 麻豆视频在线观看免费网站黄| 亚洲开心激情| 欧美/亚洲一区| 麻豆成人av在线| 亚洲视频电影在线| 国产精品99一区二区| 美女视频黄 久久| 婷婷五月色综合香五月| 蜜桃国内精品久久久久软件9| 久久精品伊人| 国产欧美日韩一区二区三区四区 | 国产aⅴ精品一区二区三区久久 | 精品国产欧美日韩| 蜜臀久久久99精品久久久久久| 亚洲深夜视频| 国产精品久久久久久久久久齐齐| 欧美特黄a级高清免费大片a级| 国产一区二区三区网| 奇米狠狠一区二区三区| 石原莉奈在线亚洲三区| 亚洲性图久久| 伊人久久视频| 精品国产三区在线| 国产欧美一区二区三区精品观看 | 麻豆视频一区二区| 日韩欧美激情| 亚洲精品精选| 麻豆精品91| 午夜日韩av| 久久一区二区三区电影| 中文字幕一区久| 国产一区二区三区黄网站| 国产精品分类| 国产欧美日韩影院| 欧美亚洲一级| 日本午夜精品久久久久| 男女男精品网站| 水蜜桃久久夜色精品一区的特点| 欧美日韩尤物久久| 亚洲精品.com| 99视频精品全部免费在线视频| 日韩精品第一区| 国产高清不卡| 日韩久久精品网|