B+樹層數計算面試官直呼內行)

      網友投稿 1073 2022-05-29

      B+樹結構簡述

      跟其它tree結構一樣,根節點只有一個,根節點可以為葉子節點或者非葉子節點,B+樹的非葉子節點(包括根節點)可以有多個子節點,它的非葉子節點僅保存索引列和指針,不保存具體行記錄;

      啥是根節點

      最上面那個就叫根節點

      啥是非葉子節點

      不是葉子節點的節點都叫非葉子節點

      啥是葉子節點

      最下面那些最終節點就叫葉子節點

      如何計算層數

      B+樹層數計算(面試官直呼內行)

      首先搞清楚一個常識,我們都知道計算機在存儲數據的時候,有最小存儲單元,這就好比我們今天進行現金的流通最小單位是一毛

      在計算機中磁盤存儲數據最小單元是扇區,一個扇區的大小是 512 字節,而文件系統(例如XFS/EXT4)他的最小單元是塊,一個塊的大小是 4k

      而對于我們的 InnoDB 存儲引擎也有自己的最小儲存單元——頁(Page),一個頁的默認大小是 16K,page可以儲存指針,也可以儲存行記錄,其中指針指向下一個page的地址

      好,知道這個,計算層數就簡單了,我們先假設有兩層,第一層為非葉子節點,保存指針,第二層為葉子節點,保存具體行記錄

      那么兩層高度的b+樹能存儲的數量 = 根節點指針數*每個指針對應第二層的行記錄數

      ok建議你先捋捋,不著急

      根節點指針數

      怕你沒認真看上面,我再說一遍,B+樹的非葉子節點僅保存索引字段和指針,假設主鍵為bigint類型,InnoDB 的bigint占用8個字節,指針占用6個字節,8+6=14,所以我們可以得出,一個page能存放的指針個數為16k/(8+6)約等于1170

      每個指針對應第二層的行記錄數

      再來說說一個page能存儲多少條行記錄,常規的互聯網項目單條行記錄大小約為1k,那么一個page能存儲的行記錄數為16k/1k=16

      所以一個2層高的b+樹能存儲的行記錄數大約為1170*16=18720

      3層為1170*1170*16約等于2190w

      ok我話說完

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:這些奇葩的排序算法絕對讓你大開眼界,還帶動圖的!
      下一篇:一個32歲入門的70后程序員給我的啟示
      相關文章
      亚洲av无码专区首页| 亚洲春色另类小说| 亚洲人成网网址在线看| 久久久久亚洲精品天堂| 亚洲AV无码一区二区二三区软件| 曰韩亚洲av人人夜夜澡人人爽| 久久亚洲av无码精品浪潮| 红杏亚洲影院一区二区三区| 国产成人亚洲午夜电影| 亚洲AV无码成H人在线观看 | 亚洲人成网站观看在线播放| 亚洲国产小视频精品久久久三级| 国产偷国产偷亚洲高清人| 午夜亚洲福利在线老司机| 在线观看亚洲视频| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲精品动漫免费二区| 色偷偷噜噜噜亚洲男人| 狠狠入ady亚洲精品| 亚洲AV无码一区二区三区国产 | 亚洲精品免费在线观看| 久久久久久亚洲Av无码精品专口| 亚洲色大成网站www永久| 亚洲综合小说久久另类区| 亚洲国产成人91精品| 亚洲乱码在线卡一卡二卡新区 | 亚洲国产精品一区二区第一页 | 亚洲av色香蕉一区二区三区| 在线精品自拍亚洲第一区| 亚洲国产中文字幕在线观看| 国产偷国产偷亚洲高清日韩| 亚洲一区二区三区无码中文字幕| 国产亚洲福利精品一区| 亚洲国产女人aaa毛片在线| 亚洲最大视频网站| 色天使亚洲综合在线观看| 国产精品国产亚洲区艳妇糸列短篇| 亚洲成av人片一区二区三区| 精品亚洲一区二区三区在线播放| 亚洲精品美女久久777777| 无码乱人伦一区二区亚洲一|