电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

mysql 使用B+樹索引有哪些優勢

瀏覽:63日期:2023-10-06 11:36:19

搞懂這個問題之前,我們首先來看一下MySQL表的存儲結構,再分別對比二叉樹、多叉樹、B樹和B+樹的區別就都懂了。

MySQL的存儲結構表存儲結構

mysql 使用B+樹索引有哪些優勢

單位:表>段>區>頁>行

在數據庫中, 不論讀一行,還是讀多行,都是將這些行所在的頁進行加載。也就是說存儲空間的基本單位是頁。一個頁就是一棵樹B+樹的節點,數據庫I/O操作的最小單位是頁,與數據庫相關的內容都會存儲在頁的結構里。

B+樹索引結構

mysql 使用B+樹索引有哪些優勢

在一棵B+樹中,每個節點為都是一個頁,每次新建節點的時候,就會申請一個頁空間 同一層的節點為之間,通過頁的結構構成了一個雙向鏈表 非葉子節點為,包括了多個索引行,每個索引行里存儲索引鍵和指向下一層頁面的指針 葉子節點為,存儲了關鍵字和行記錄,在節點內部(也就是頁結構的內部)記錄之間是一個單向的鏈表 B+樹頁節點結構

mysql 使用B+樹索引有哪些優勢

有以下幾個特點

將所有的記錄分成幾個組, 每組會存儲多條記錄, 頁目錄存儲的是槽(slot),槽相當于分組記錄的索引,每個槽指針指向了不同組的最后一個記錄 我們通過槽定位到組,再查看組中的記錄

頁的主要作用是存儲記錄,在頁中記錄以單鏈表的形式進行存儲。單鏈表優點是插入、刪除方便,缺點是檢索效率不高,最壞的情況要遍歷鏈表所有的節點。因此頁目錄中提供了二分查找的方式,來提高記錄的檢索效率。

B+樹的檢索過程

我們再來看下B+樹的檢索過程

從B+樹的根開始,逐層找到葉子節點。 找到葉子節點為對應的數據頁,將數據葉加載到內存中,通過頁目錄的槽采用二分查找的方式先找到一個粗略的記錄分組。 在分組中通過鏈表遍歷的方式進行記錄的查找。為什么要用B+樹索引

數據庫訪問數據要通過頁,一個頁就是一個B+樹節點,訪問一個節點相當于一次I/O操作,所以越快能找到節點,查找性能越好。B+樹的特點就是夠矮夠胖,能有效地減少訪問節點次數從而提高性能。

下面,我們來對比一個二叉樹、多叉樹、B樹和B+樹。

二叉樹

mysql 使用B+樹索引有哪些優勢

二叉樹是一種二分查找樹,有很好的查找性能,相當于二分查找。但是當N比較大的時候,樹的深度比較高。數據查詢的時間主要依賴于磁盤IO的次數,二叉樹深度越大,查找的次數越多,性能越差。最壞的情況是退化成了鏈表,如下圖

mysql 使用B+樹索引有哪些優勢

為了讓二叉樹不至于退化成鏈表,人們發明了AVL樹(平衡二叉搜索樹):任何結點的左子樹和右子樹高度最多相差1

多叉樹

mysql 使用B+樹索引有哪些優勢

多叉樹就是節點可以是M個,能有效地減少高度,高度變小后,節點變少I/O自然少,性能比二叉樹好了

B樹

mysql 使用B+樹索引有哪些優勢

B樹簡單地說就是多叉樹,每個葉子會存儲數據,和指向下一個節點的指針。

例如要查找9,步驟如下

我們與根節點的關鍵字 (17,35)進行比較,9 小于 17 那么得到指針 P1; 按照指針 P1 找到磁盤塊 2,關鍵字為(8,12),因為 9 在 8 和 12 之間,所以我們得到指針 P2; 按照指針 P2 找到磁盤塊 6,關鍵字為(9,10),然后我們找到了關鍵字 9。 B+樹

mysql 使用B+樹索引有哪些優勢

B+樹是B樹的改進,簡單地說是:只有葉子節點才存數據,非葉子節點是存儲的指針;所有葉子節點構成一個有序鏈表

B+樹的內部節點并沒有指向關鍵字具體信息的指針,因此其內部節點相對B樹更小,如果把所有同一內部節點的關鍵字存放在同一盤塊中,那么盤塊所能容納的關鍵字數量也越多,一次性讀入內存的需要查找的關鍵字也就越多,相對IO讀寫次數就降低了

例如要查找關鍵字16,步驟如下

與根節點的關鍵字 (1,18,35) 進行比較,16 在 1 和 18 之間,得到指針 P1(指向磁盤塊 2) 找到磁盤塊 2,關鍵字為(1,8,14),因為 16 大于 14,所以得到指針 P3(指向磁盤塊 7) 找到磁盤塊 7,關鍵字為(14,16,17),然后我們找到了關鍵字 16,所以可以找到關鍵字 16 所對應的數據。

B+樹與B樹的不同:

B+樹非葉子節點不存在數據只存索引,B樹非葉子節點存儲數據 B+樹查詢效率更高。B+樹使用雙向鏈表串連所有葉子節點,區間查詢效率更高(因為所有數據都在B+樹的葉子節點,掃描數據庫 只需掃一遍葉子結點就行了),但是B樹則需要通過中序遍歷才能完成查詢范圍的查找。 B+樹查詢效率更穩定。B+樹每次都必須查詢到葉子節點才能找到數據,而B樹查詢的數據可能不在葉子節點,也可能在,這樣就會造成查詢的效率的不穩定 B+樹的磁盤讀寫代價更小。B+樹的內部節點并沒有指向關鍵字具體信息的指針,因此其內部節點相對B樹更小,通常B+樹矮更胖,高度小查詢產生的I/O更少。

這就是MySQL使用B+樹的原因,就是這么簡單!

以上就是mysql 使用B+樹索引有哪些優勢的詳細內容,更多關于MySQL 使用B+樹索引的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | STRO|DTRO-STRO反渗透膜(科普)_碟滤 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 森旺-A级防火板_石英纤维板_不燃抗菌板装饰板_医疗板 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 包装机_厂家_价格-山东包装机有限公司 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 杭州|上海贴标机-百科 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 中国在职研究生招生信息网| 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 |