精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入聊聊MySQL直方圖的應用

數(shù)據(jù)庫 MySQL
直方圖用于描述數(shù)據(jù)表中列上的數(shù)據(jù)分布,這些關(guān)于數(shù)據(jù)分布的內(nèi)容,可以幫助優(yōu)化器更準確地估計給定的where子句或聯(lián)接條件將過濾掉表中多少數(shù)據(jù)。這里我們要清楚的一點,直方圖并不能像索引一樣可以幫助減少要訪問的行數(shù),它只是幫助優(yōu)化器選擇更合適的執(zhí)行計劃。

本文是在假定讀者了解了直方圖是什么,直方圖如何進行添加維護的前提下,圍繞直方圖與索引的對比、何時應該添加直方圖,及直方圖如何幫助優(yōu)化器選擇更優(yōu)的執(zhí)行計劃這幾個方面來介紹直方圖。

直方圖的作用

直方圖用于描述數(shù)據(jù)表中列上的數(shù)據(jù)分布,這些關(guān)于數(shù)據(jù)分布的內(nèi)容,可以幫助優(yōu)化器更準確地估計給定的where子句或聯(lián)接條件將過濾掉表中多少數(shù)據(jù)。這里我們要清楚的一點,直方圖并不能像索引一樣可以幫助減少要訪問的行數(shù),它只是幫助優(yōu)化器選擇更合適的執(zhí)行計劃。MySQL8開始支持直方圖,但實際上直方圖在MySQL中,不像在其他數(shù)據(jù)庫中那樣有用,因為MySQL能夠通過index dive,直接訪問索引對應的B+樹,來計算某個掃描區(qū)間內(nèi)對應的索引記錄條數(shù),所以直方圖不能與同一列上的索引一起使用,而且優(yōu)化器優(yōu)先使用索引。

直方圖與索引相比,優(yōu)點是什么

MySQL的索引既可以有效估算索引范圍內(nèi)的行數(shù),又可以幫助減少要訪問的記錄,為什么還要引入直方圖呢?與索引相比,直方圖的一個好處是,在確定過濾條件返回行數(shù)時直方圖比索引成本要低,直方圖的統(tǒng)計信息可以輕松用于優(yōu)化器,而索引在確定查詢計劃時,要執(zhí)行下潛操作來估算行數(shù),并且每次執(zhí)行查詢時都要重復執(zhí)行這樣的操作。講到這里可能大家會有一個疑問,不是有索引統(tǒng)計信息嗎,為何每次都要執(zhí)行下潛操作來估算呢?其實MySQL是這樣設計的,有一個參數(shù)eq_range_index_dive_limit(默認值200), 對于索引列而言,當存在與此參數(shù)設置相等或更大的區(qū)間范圍過濾條件時,優(yōu)化器將從下潛轉(zhuǎn)換為只使用索引統(tǒng)計信息來估算匹配行的數(shù)量。因為MySQL認為使用index dive估算比統(tǒng)計信息更準確,但是當過濾的區(qū)間范圍條件多,比如使用in來過濾,條目值達到1000,過濾區(qū)間就會有1000個,這樣index dive的成本太高,MySQL就傾向于使用索引統(tǒng)計信息了。似乎跑題了呢,回歸正傳。與索引相比,直方圖的第二個好處是,索引維護有代價,執(zhí)行DML操作時需要維護索引,所以索引多了就會影響DML操作的效率,直方圖統(tǒng)計信息只需在非業(yè)務高峰定期收集即可,對DML操作無影響。與索引相比,直方圖的第三個好處是,索引會增加表空間文件的大小,而直方圖統(tǒng)計信息占用的空間可忽略不計。

既無索引又無直方圖,優(yōu)化器如何估算返回行數(shù)

如果過濾條件上既沒有索引也沒有直方圖,優(yōu)化器如何估算過濾比例呢,優(yōu)化器會根據(jù)MySQL代碼中內(nèi)置的默認規(guī)則來估計過濾比例,相當于根據(jù)自己的想法瞎猜。默認的過濾比例以一個列表形式來展示如下:

過濾類型

過濾比例

等值過濾(=)

10%

不等于(<>或!=)

90%

不等式(< 或>)

33.33%

Between

11.11%

IN

Min(條目*10, 50)

舉個例子;執(zhí)行語句:explain select * from t1 where temporary= 'N';對t1表的字段 temporary 進行等值過濾。

圖片

從上圖可以看出,優(yōu)化器按規(guī)則估算過濾比例,filtered為10%,也就是估算返回行數(shù)為rows * filtered/100=7183行,而實際返回行數(shù)為72214,filtered=72214/72435=99.69。這個差異可謂很大了。

收集一下該列上直方圖的統(tǒng)計信息后,再去查看執(zhí)行計劃中的filtered,此時filtered就相當精確了。

圖片

數(shù)據(jù)分布不均勻時,MySQL以不變應萬變的處理規(guī)則,估算肯定是相當不準確的,因此在選擇執(zhí)行計劃時就有可能做出錯誤的決策。索引的維護有代價,不能在每個涉及條件的列上都加上索引,那么在不適合創(chuàng)建索引的列上創(chuàng)建直方圖,可以作為索引的補充,幫助優(yōu)化器更好的選擇執(zhí)行計劃。

何時應該添加直方圖

因為MySQL在sql優(yōu)化階段會對索引進行下潛操作來估算返回行數(shù),導致直方圖在MySQL中使用空間是有限的,那么究竟要在哪些列上創(chuàng)建直方圖,才能有效發(fā)揮直方圖的作用呢?創(chuàng)建直方圖的最佳候選是符合下列條件的列:

數(shù)據(jù)分布不均勻,或者具有太多值,以至于優(yōu)化器粗略估算無法很好的估計數(shù)據(jù)的選擇行。

選擇性差的列(否則索引可能是更好的選擇)

用于在where子句或聯(lián)接條件過濾表的數(shù)據(jù)。如果不對列進行過濾,則優(yōu)化器無法使用直方圖。

隨著時間推移,數(shù)據(jù)分布逐漸穩(wěn)定的列。直方圖統(tǒng)計信息不會自動更新。如果在數(shù)據(jù)分布頻繁變化的列上添加直方圖,則直方圖統(tǒng)計信息可能不準確。

直方圖應用舉例

其實直方圖對于單表訪問用處不大,主要體現(xiàn)在表聯(lián)接時,表的聯(lián)接方式有多種選擇時,直方圖才可以幫助確定何種選擇最好。舉個例子來說明。a1,a2兩個表做關(guān)聯(lián)查詢。兩個表結(jié)構(gòu)信息如下圖所示:

圖片

關(guān)聯(lián)查詢語句:select * from a1,a2 where a1.id=a2.id and a1.temporary='N' and a2.status='NOVALID';兩表在關(guān)聯(lián)條件的字段上都有索引,又都有額外的過濾條件,優(yōu)化器在選擇走嵌套聯(lián)接時,有兩種可能,一種a1驅(qū)動a2,一種是a2驅(qū)動a1,哪種方式更好,取決于兩表使用過濾條件過濾后哪個表返回的行數(shù)少,因為我們知道嵌套聯(lián)接時,小表驅(qū)動大表效率高。而a1表的temporary字段,a2表的status字段數(shù)據(jù)分布不均勻,選擇性差,不適合建立索引。這個時候直方圖就有用武之地了。已知a1表的temporary='N'條件過濾性差,a2表的status='NOVALID'的過濾性好,用a2驅(qū)動a1效率會更高。因為沒有直方圖時,優(yōu)化器不知道誰的過濾性好,按等值過濾的默認規(guī)則filtered=10進行過濾,在選擇執(zhí)行計劃時就有可能做出錯誤決策。我們先看沒有收集直方圖時的執(zhí)行計劃。如下圖所示:

圖片

從圖中可以看出優(yōu)化器選擇了a1驅(qū)動a2, a1表過濾后估算的行數(shù)為7049,而實際為72214,a2表作為被驅(qū)動表被掃描72214次。執(zhí)行總耗時280ms。 下面對a2表的status列收集直方圖,然后再執(zhí)行關(guān)聯(lián)查詢,如下圖所示:

圖片

從上圖可以看出,有了直方圖后,優(yōu)化器選擇了a2驅(qū)動a1, a2表過濾后估算的行數(shù)為8,實際也為8,a1作為被驅(qū)動表只掃描了8次。執(zhí)行總耗時87ms,效率提升了3倍。

體會到直方圖的作用了嗎,直方圖告訴了優(yōu)化器數(shù)據(jù)分布,讓優(yōu)化器估算更準確,進而讓優(yōu)化器做出了英明的決策。

責任編輯:武曉燕 來源: GreatSQL社區(qū)
相關(guān)推薦

2022-02-09 11:02:16

JavaScript前端框架

2021-10-17 22:40:51

JavaScript開發(fā) 框架

2013-06-28 17:47:59

移動應用

2018-05-18 08:20:32

數(shù)據(jù)治理應用

2019-12-04 10:13:58

Kubernetes存儲Docker

2023-06-12 09:09:19

MySQLDDLNSTANT

2021-11-17 08:11:35

MySQL

2023-11-09 11:56:28

MySQL死鎖

2018-12-19 14:40:08

Redis高級特性

2021-08-12 18:49:41

DataStreamAPI注冊

2020-12-22 06:05:43

Mbedtls應用基礎(chǔ)

2019-01-09 13:20:28

GPU虛擬化應用

2022-04-02 10:23:12

MySQL數(shù)據(jù)庫

2022-11-02 09:39:51

數(shù)據(jù)恢復Kubernetes

2021-04-22 05:40:45

iOS應用瘦身

2020-11-30 13:10:39

MySQL安全服務器

2021-06-03 19:13:06

MySQLJson數(shù)據(jù)

2023-01-05 08:14:41

2015-06-25 12:41:53

實時 Node應用性能監(jiān)測

2018-09-19 16:15:18

MySQL直方圖數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號

国产精品久久久久久久久快鸭 | 日韩免费av电影| 四虎精品永久在线| 99久久影视| 日韩电影在线观看中文字幕 | 一卡二卡在线观看| 亚洲毛片在线| www亚洲欧美| 亚洲调教欧美在线| 中文成人激情娱乐网| 欧美日韩国产黄| 51xx午夜影福利| 黄色的视频在线免费观看| 国产一区不卡视频| 国产精品第三页| 免费中文字幕在线观看| 午夜三级在线观看| 黄色动漫在线| 久久综合999| 波多野结衣一区二区三区在线观看| av资源免费观看| 中文视频一区| 日韩在线视频线视频免费网站| 亚洲精品乱码久久久久久不卡| 国产精品一区二区三区av | 精品国产www| 国产精品毛片一区二区三区| 欧美成人三级视频网站| 国产精品情侣呻吟对白视频| 美女网站一区| 亚洲韩国青草视频| 可以看的av网址| 91亚洲精品在看在线观看高清| 欧亚一区二区三区| 欧美视频第三页| 特黄毛片在线观看| 亚洲成a人片在线观看中文| 亚洲欧洲一二三| 国产三级视频在线看| 99久久精品国产毛片| 国产精品一区二区三区不卡 | 亚洲精品一区二区在线| 岛国精品一区二区三区| 亚洲一区电影| 日韩欧美高清一区| 中文字幕第10页| 国产视频一区二| 欧美一区二区三区免费| 91在线第一页| 日韩精品中文字幕吗一区二区| 在线综合视频播放| 色网站在线视频| 综合久草视频| 欧美一区二区三区系列电影| gogogo高清免费观看在线视频| 成人黄页网站视频| 欧美久久久久久蜜桃| 天天操精品视频| 欧美a级大片在线| 日韩欧美久久久| 图片区偷拍区小说区| 日韩成人动漫在线观看| 亚洲欧美国产精品| 白白色免费视频| 日本久久精品| 久久久精品一区二区| 无码人妻精品一区二区三区夜夜嗨| 欧美99久久| 久久久久久91| 在线视频一区二区三区四区| 日本美女一区二区三区| 96国产粉嫩美女| 亚洲欧美另类一区| 久久一区二区视频| 亚洲一区综合| 九色91在线| 欧美午夜精品伦理| 91n.com在线观看| www.久久热| 亚洲精品久久在线| 国产三级av在线播放| 91蜜臀精品国产自偷在线| 欧美老妇交乱视频| 成人免费看片98欧美| 日av在线不卡| 国产成人免费观看| 国产午夜在线观看| 自拍偷在线精品自拍偷无码专区 | 青青成人在线| 毛片av在线| 午夜天堂影视香蕉久久| 少妇一级淫免费放| 另类春色校园亚洲| 最新中文字幕亚洲| 黄网在线观看视频| 蜜臀精品久久久久久蜜臀| 99在线高清视频在线播放| 牛牛澡牛牛爽一区二区| 亚洲欧美日本在线| 国产成人精品无码播放| 无人区乱码一区二区三区| 亚洲男人天堂网| 日本a级片视频| 久久综合五月| 国产精品亚洲一区| 欧美69xxx| 色一情一伦一子一伦一区| 亚洲综合在线一区二区| 国产精品密蕾丝视频下载| 欧美日韩aaaa| 国产精品伊人久久| 久久精品一二三| 免费一级特黄毛片| 自拍偷拍亚洲图片| 永久免费精品影视网站| 国产精品免费av一区二区| 国产一区二区伦理| 视频一区不卡| 国产精品一区二区av影院萌芽| 精品免费一区二区三区| 国产高潮流白浆| 久久超碰97中文字幕| 欧美亚州在线观看| 国产不卡123| 亚洲精品一区二区精华| 91香蕉视频在线播放| 日本va欧美va精品| 欧美性xxxx69| 高清不卡av| 日韩二区三区在线| 国产一级视频在线观看| 国产激情视频一区二区在线观看| 一级二级三级欧美| 精品视频在线一区二区在线| 亚洲欧美精品伊人久久| 日韩不卡在线播放| 久久综合丝袜日本网| 国产真人做爰毛片视频直播| 亚洲啊v在线免费视频| 久久影视免费观看| 888奇米影视| 中文字幕一区二区三区蜜月| 日韩在线不卡一区| 91精品国产乱码久久久久久久| 国产女同一区二区| 免费黄色网页在线观看| 欧美日韩国产123区| 91制片厂在线| 九色porny丨国产精品| 中文字幕色一区二区| 自拍偷拍欧美日韩| 欧美日本啪啪无遮挡网站| 精品人妻午夜一区二区三区四区| 亚洲卡通动漫在线| 精品无码人妻少妇久久久久久| 精品9999| 免费亚洲精品视频| 色天使综合视频| 色诱女教师一区二区三区| 91av久久久| 一区二区三区在线视频免费观看| 日本人添下边视频免费| 国产精品毛片在线| 亚洲国产精品视频一区| 综合久久伊人| 久久久噜噜噜久久| 青青草在线免费视频| 欧美丝袜自拍制服另类| 91精品国产闺蜜国产在线闺蜜| 高清视频一区二区| 成年人视频观看| 欧美日韩一二| 亚洲一区中文字幕| 亚洲电影观看| 日韩中文字幕久久| 亚洲老妇色熟女老太| 欧美性猛交xxxx乱大交极品| 午夜精品久久久久99蜜桃最新版| 国产高清在线精品| 91视频最新入口| 国产精品久久久久久久久久10秀| 97人人模人人爽视频一区二区 | 国产精品激情电影| 九九热久久66| 九七电影院97理论片久久tvb| 欧美疯狂xxxx大交乱88av| 日av在线播放| 制服丝袜av成人在线看| 日本中文字幕在线免费观看| 中文字幕免费观看一区| 精品国产乱码久久久久夜深人妻| 久久精品女人| 久久久国内精品| 欧美日韩一区二区三区视频播放| 国产伦精品一区二区三区视频黑人| 久久久人成影片一区二区三区在哪下载 | 精品捆绑美女sm三区| 在线观看污污网站| 亚洲国产视频在线| 麻豆视频免费在线播放| 成人精品高清在线| 亚洲涩涩在线观看| 国产一区二区你懂的| 国产精品一二三在线观看| 国产精品探花在线观看| 国产精品久久精品视| 亚洲ww精品| 国产精品91久久久| аⅴ资源天堂资源库在线| 久久成人综合视频| 成人欧美亚洲| 精品亚洲一区二区三区四区五区| 国产高清精品软件丝瓜软件| 欧美日韩一区小说| 亚洲黄色激情视频| 五月开心婷婷久久| 九九热国产精品视频| 亚洲同性同志一二三专区| 亚洲女优在线观看| 久久综合久久综合亚洲| 性高潮免费视频| 国产一区二区伦理| 夜夜夜夜夜夜操| 男人的天堂亚洲一区| 免费在线观看的av网站| 亚洲高清网站| 国产一区 在线播放| 一本一道久久a久久精品蜜桃| 亚洲精品乱码久久久久久蜜桃91| 亚洲精品小区久久久久久| 精品久久久久久一区二区里番| 亚洲一区二区电影| 99视频在线免费观看| 亚洲一区二区三区在线免费| 91美女片黄在线观| 伊人久久大香| 成人免费xxxxx在线观看| 青青草国产一区二区三区| 国产精品香蕉av| 亚洲高清影院| 1卡2卡3卡精品视频| 日韩一级淫片| 97人人澡人人爽| 视频二区欧美| 国产精品嫩草在线观看| 欧美亚洲色图校园春色| 精品国产区在线| 欧美在线导航| 欧美久久久久久久| 国产一区二区三区四区五区| 日韩精品无码一区二区三区| 成人在线免费小视频| 亚洲在线视频一区二区| 91精品国产乱码久久久久久久| 女女同性女同一区二区三区按摩| 91精品久久久久久久蜜月| 久久久久久久久影视| 国内在线观看一区二区三区| 久久国产精品网| 久久九九精品| 欧美黄色性生活| 韩国av一区二区| avtt中文字幕| 久久在线免费观看| 亚洲欧美日韩第一页| 亚洲美女视频在线| 日本在线视频免费| 色噜噜狠狠成人中文综合| 97国产成人无码精品久久久| 欧美一区国产二区| 手机看片福利永久| 在线观看91久久久久久| 国产激情小视频在线| 欧美激情手机在线视频 | 最近日本中文字幕| 国产日韩一级二级三级| 国精品无码一区二区三区| 亚洲v中文字幕| 国产精品无码一区| 欧美一区二区黄| 青青青草网站免费视频在线观看| 自拍视频国产精品| 国产盗摄精品一区二区酒店| 国产精品v片在线观看不卡| 国产不卡精品在线| 欧美高清性xxxxhd| 亚洲九九在线| av免费在线播放网站| 国产精品888| 永久免费看mv网站入口78| 亚洲色图20p| 亚洲国产av一区二区三区| 日韩欧美一区二区不卡| 国产小视频免费在线观看| 欧美高跟鞋交xxxxhd| 先锋欧美三级| 国产伦精品一区二区三区照片91 | 2020日本不卡一区二区视频| 一级性生活免费视频| 欧美午夜视频在线观看| 国产99999| 亚洲性日韩精品一区二区| 天堂va在线| 国产日韩欧美电影在线观看| 无码少妇一区二区三区| 国产911在线观看| 免费av网站大全久久| 草草地址线路①屁屁影院成人| 亚洲另类色综合网站| 亚洲天堂久久久久| 日韩精品免费一线在线观看| 四虎影视成人| 成人xxxx视频| av一区二区高清| 欧美日韩黄色一级片| 国产成人亚洲综合色影视| 五月婷婷六月香| 在线视频一区二区免费| 亚洲欧洲精品视频| 欧美激情aaaa| 日韩欧美高清一区二区三区| 综合网五月天| 美腿丝袜亚洲三区| 少妇久久久久久久久久| 欧美日韩国产一区二区| 亚洲精品无码久久久| 久久大大胆人体| 成人国产精品一区二区网站| 神马影院午夜我不卡影院| 日韩制服丝袜av| 51调教丨国产调教视频| 天天av天天翘天天综合网 | 国产精品理伦片| 国产99免费视频| 亚洲欧美在线x视频| 性孕妇free特大另类| 免费试看一区| 日韩国产在线观看一区| 波多野在线播放| 色嗨嗨av一区二区三区| 黄色av网站在线| 国产精品成人av性教育| 精品久久久久久久| 色一情一乱一伦一区二区三区日本| 久久欧美一区二区| 无码人妻aⅴ一区二区三区有奶水| 精品一区电影国产| 台湾佬成人网| 亚洲欧美日韩国产成人综合一二三区| 秋霞成人午夜伦在线观看| 久久久久人妻一区精品色| 91精品国产91热久久久做人人 | 五月天丁香久久| 天天干天天舔天天射| 青青久久aⅴ北条麻妃| 国产区精品区| av亚洲天堂网| 亚洲夂夂婷婷色拍ww47| 香蕉视频黄在线观看| 国产精品美女av| 久久久久久久久久久9不雅视频| 午夜性福利视频| 精品欧美国产一区二区三区| 欧美孕妇孕交xxⅹ孕妇交| 国产成人在线亚洲欧美| 91影院成人| 国产a级片视频| 午夜av一区二区三区| 番号集在线观看| 成人久久一区二区三区| 亚洲精品韩国| 四季av中文字幕| 欧美xxxx老人做受| av高清不卡| 先锋影音男人资源| 9i在线看片成人免费| 伊人成人在线观看| 久久91精品国产91久久久| 蜜臀91精品国产高清在线观看| 天天干天天综合| 亚洲在线观看免费| 成人免费在线观看| 国产99视频精品免费视频36| 男女精品视频| 九九热精品在线观看| 亚洲视频欧洲视频| 中文一区二区三区四区| 人妻丰满熟妇av无码区app| 亚洲精品国产第一综合99久久| 欧洲视频在线免费观看| 91精品在线看| 午夜在线视频一区二区区别| 久久精品一区二区三区四区五区 | 麻豆亚洲精品| 精品亚洲乱码一区二区| 亚洲精品久久久久久久久久久久| 欧美视频精品| 日本三级免费观看| 亚洲免费av高清| 求av网址在线观看|