最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql?索引?BTree?與?B+Tree?的區(qū)別(面試)

 更新時間:2022年09月27日 09:37:42   作者:阿常囈語  
這篇文章主要介紹了Mysql索引BTree與B+Tree的區(qū)別,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言

? 說起面試,很多同學(xué)都經(jīng)歷過,但是 面試中 可能會遇到各種問題,MySQL 的問題 也是非常多,最近我也經(jīng)常面試,也希望問一些數(shù)據(jù)庫一些偏理論和底層的東西,來考察同學(xué)對技術(shù)的理解程度, 之后 我會更新這個系列的 面試。

主要更新的內(nèi)容主要是: 我經(jīng)常面試 一些面試者 喜歡問的一些問題,這是 第一篇 就更新 數(shù)據(jù)庫相關(guān)的吧

BTree 基本概念

B樹。B樹被稱為自平衡樹,因為它的節(jié)點是按順序遍歷排序的。在B樹中,一個節(jié)點可以有兩個以上的孩子。而且高度在每次更新時都會自動調(diào)整。在B樹中,數(shù)據(jù)是按照特定的順序排序的,最低值在左邊,最高值在右邊。在B樹中插入數(shù)據(jù)或鍵,比二叉樹更復(fù)雜。

Btree 的特點:

  • 節(jié)點排序,每個節(jié)點 可以存放多個元素,多個元素也是排序的
  • 每個節(jié)點 key 和數(shù)據(jù)在一起
  • B樹的所有葉子節(jié)點必須在同一級別
  • 在B樹的葉子節(jié)點上面,不應(yīng)該有空的子樹
  • 在關(guān)鍵字全集內(nèi)做一次查找,性能逼近 二分查找的算法
  • 任何關(guān)鍵字出現(xiàn)且只出現(xiàn)在一個節(jié)點中
  • 搜索有可能在非葉子節(jié)點結(jié)束,因為數(shù)據(jù)和索引在一起存儲的

來一個 max Degree =3 的一個圖

在線生成BTree 的圖形

在這里插入圖片描述

B+Tree 的特點

B+tree 多路平衡查找樹:

  • B+Tree 擁有BTree 的所有的結(jié)構(gòu)特點
  • B+Tree 的非葉子節(jié)點不存儲數(shù)據(jù),只存儲關(guān)鍵字,葉子節(jié)點才存儲了所有的數(shù)據(jù),并且是排好序的
  • B+Tree 葉子節(jié)點是通過指針連接在一起的(雙向連接), 這樣在范圍查詢中發(fā)揮作用
  • 相對于 Btree , B+tree 層級更低

B+Trees 特點如下:

圖形生成地址

在這里插入圖片描述

查找過程的區(qū)別

兩種索引 查找過程的區(qū)別:

B+tree 需要找到葉子節(jié)點 才能找到數(shù)據(jù), 而Btree 可能不需要找到葉子節(jié)點 就可以找到數(shù)據(jù)

B+Tree索引 如何提高索引的查詢性能 ?

  • 找得快, 葉子節(jié)點雙向指針
  • 一次IO 操作,找更多的數(shù)據(jù),減少IO 操作,節(jié)點不存數(shù)據(jù),只存關(guān)鍵字,這樣可以存儲更多索引的信息,B+tree 層級會降低

為啥 B+Tree 會比 BTree 高度要低呢?

頁(Page)是Mysql中磁盤和內(nèi)存交換的基本單位, 也是Mysql管理存儲空間的基本單位。

Page 是InnoDB存儲引擎磁盤管理的最小單位,每個頁默認16KB,innodb_page_size 可以通過這個參數(shù)進行修改

B+Tree 中的非葉子節(jié)點 不存儲數(shù)據(jù), 只存關(guān)鍵字,所以一個Page 中可以容納更多的索引項, 一是可以降低樹的高度,二是 在一個內(nèi)部節(jié)點中可以定位更多的葉子節(jié)點。

到此這篇關(guān)于Mysql 索引 BTree 與 B+Tree 的區(qū)別(面試)的文章就介紹到這了,更多相關(guān)Mysql BTree與B+Tre內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql的數(shù)據(jù)壓縮性能對比詳情

    mysql的數(shù)據(jù)壓縮性能對比詳情

    這篇文章主要介紹了mysql的數(shù)據(jù)壓縮性能對比,今天對這兩種方式分別進行了測試,對比了二者在磁盤占用以及查詢性能方面各自的優(yōu)劣,下面我們大家一起進入文章了解詳細內(nèi)容,需要的朋友也可以參考一下
    2021-11-11
  • Windows環(huán)境下的MYSQL5.7配置文件定位圖文分析

    Windows環(huán)境下的MYSQL5.7配置文件定位圖文分析

    本文通過圖文并茂的形式給大家介紹了Windows環(huán)境下的MYSQL5.7配置文件定位 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • MySQL數(shù)據(jù)庫的shell腳本自動備份

    MySQL數(shù)據(jù)庫的shell腳本自動備份

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的shell腳本自動備份的相關(guān)資料,網(wǎng)站或應(yīng)用的后臺都有備份數(shù)據(jù)庫的功能按鈕,但需要去手工執(zhí)行。我們需要一種安全的,每天自動備份的方法需要的朋友可以參考下
    2017-03-03
  • MySQL InnoDB ReplicaSet(副本集)簡單介紹

    MySQL InnoDB ReplicaSet(副本集)簡單介紹

    這篇文章主要介紹了MySQL InnoDB ReplicaSet(副本集)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-04-04
  • mysql死鎖(dead lock)與鎖等待(lock wait)的出現(xiàn)解決

    mysql死鎖(dead lock)與鎖等待(lock wait)的出現(xiàn)解決

    死鎖和鎖等待是數(shù)據(jù)庫運維中常見的問題,區(qū)別在于死鎖會自動解除,而鎖等待需要手動處理,本文就來介紹一下mysql死鎖(dead lock)與鎖等待(lock wait),感興趣的可以了解一下
    2024-09-09
  • 如何解決Mysql報錯Deadlock found when trying to get lock;try restarting transaction問題

    如何解決Mysql報錯Deadlock found when trying to

    這篇文章主要介紹了如何解決Mysql報錯Deadlock found when trying to get lock;try restarting transaction問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Navicat連接MySQL時報10060、1045錯誤及my.ini位置問題

    Navicat連接MySQL時報10060、1045錯誤及my.ini位置問題

    這篇文章主要介紹了Navicat連接MySQL的10060及1045報錯,my.ini位置,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • MySQL Router實現(xiàn)MySQL的讀寫分離的方法

    MySQL Router實現(xiàn)MySQL的讀寫分離的方法

    MySQL Router是MySQL官方提供的一個輕量級MySQL中間件,用于取代以前老版本的SQL proxy。本文主要介紹了MySQL Router實現(xiàn)MySQL的讀寫分離的方法,感興趣的可以了解一下
    2021-05-05
  • 淺析MySQL的基數(shù)統(tǒng)計

    淺析MySQL的基數(shù)統(tǒng)計

    這篇文章主要介紹了MySQL的基數(shù)統(tǒng)計的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫的使用,感興趣的朋友可以了解下
    2020-11-11
  • 坑人的Mysql5.7問題(默認不支持Group By語句)

    坑人的Mysql5.7問題(默認不支持Group By語句)

    這篇文章主要介紹了坑人的Mysql5.7問題(默認不支持Group By語句),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論

榆树市| 岚皋县| 连平县| 时尚| 莱西市| 哈巴河县| 桂东县| 章丘市| 漳州市| 兴山县| 大渡口区| 姜堰市| 抚松县| 个旧市| 新乡市| 黄冈市| 尚志市| 万安县| 稷山县| 中江县| 广南县| 广汉市| 贡觉县| 宁波市| 明溪县| 西和县| 浙江省| 醴陵市| 巨鹿县| 温宿县| 吴川市| 兴宁市| 枣阳市| 红原县| 湖州市| 铁岭县| 平果县| 台东县| 阿尔山市| 永昌县| 安阳县|