欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

BTree 基本概念

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

Btree 的特點:

  • 節(jié)點排序,每個節(jié)點 可以存放多個元素,多個元素也是排序的
  • 每個節(jié)點 key 和數(shù)據(jù)在一起
  • B樹的所有葉子節(jié)點必須在同一級別
  • 在B樹的葉子節(jié)點上面,不應該有空的子樹
  • 在關鍵字全集內(nèi)做一次查找,性能逼近 二分查找的算法
  • 任何關鍵字出現(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ù),只存儲關鍵字,葉子節(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ù),只存關鍵字,這樣可以存儲更多索引的信息,B+tree 層級會降低

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

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

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

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

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

相關文章

  • MySQL運行在docker容器性能損失解析

    MySQL運行在docker容器性能損失解析

    這篇文章主要為大家介紹了MySQL運行在docker容器中的性能損失解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • MySQL的事務特性概念梳理總結(jié)

    MySQL的事務特性概念梳理總結(jié)

    這篇文章主要介紹了MySQL的事務特性概念梳理總結(jié),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • MySQL將多條數(shù)據(jù)合并成一條的完整示例

    MySQL將多條數(shù)據(jù)合并成一條的完整示例

    我們在使用mysql的時候常會遇到合并的需求,下面這篇文章主要給大家介紹了關于MySQL將多條數(shù)據(jù)合并成一條的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • CMS不要讓MySQL為你流淚

    CMS不要讓MySQL為你流淚

    MySQL是中小型網(wǎng)站普遍使用的數(shù)據(jù)庫之一,然而,很多人并不清楚MySQL到底能支持多大的數(shù)據(jù)量,再加上某些國內(nèi)CMS廠商把數(shù)據(jù)承載量的責任推給它,導致很多不了解MySQL的站長對它產(chǎn)生了很多誤解
    2008-12-12
  • Navicat Premium15連接云服務器中的數(shù)據(jù)庫問題及遇到坑

    Navicat Premium15連接云服務器中的數(shù)據(jù)庫問題及遇到坑

    這篇文章主要介紹了Navicat Premium15連接云服務器中的數(shù)據(jù)庫問題及遇到坑,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • mysql把一段數(shù)據(jù)變成一個臨時表

    mysql把一段數(shù)據(jù)變成一個臨時表

    這篇文章主要介紹了mysql把一段數(shù)據(jù)變成一個臨時表,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • MySQL 5.7安裝后默認登錄密碼的查看方法

    MySQL 5.7安裝后默認登錄密碼的查看方法

    許多朋友安裝MySQL 5.7之后不知道默認登錄密碼在哪里查看,本文小編將通過代碼示例和圖文結(jié)合的方式給大家介紹MySQL 5.7安裝后默認登錄密碼的查看方法,需要的朋友可以參考下
    2023-12-12
  • 基于unique與primary約束的區(qū)別分析

    基于unique與primary約束的區(qū)別分析

    本篇文章介紹了unique與primary約束的區(qū)別分析。需要的朋友參考下
    2013-04-04
  • 使用java處理字符串公式運算的方法

    使用java處理字符串公式運算的方法

    本篇文章介紹了,使用java處理字符串公式運算的方法。需要的朋友參考下
    2013-04-04
  • MySQL之解決字符串數(shù)字的排序失效問題

    MySQL之解決字符串數(shù)字的排序失效問題

    這篇文章主要介紹了MySQL之解決字符串數(shù)字的排序失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論