少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          二叉樹->b-樹,解決的是讀索引的IO次數問題

          在真實的數據庫中
          往往索引本身的數據量也是非常龐大的
          樹的查找,其實是每一層需要做一次判斷
          因為索引很大,只能存在文件里,不能一次加載,所以沒判斷一層,都需要有一次磁盤IO,所以查找IO次數最壞的情況
          就是樹的高度-1,加入你要的節點在最后一層的話
          二叉樹,是只有兩個子節點的
          一單數據量一大的話
          樹高會很恐怖
          B-Tree,的度是沒有限制的
          可以打打減少這個數的高度,從而減少磁盤讀的次數


          b-tree -> b+tree :這個是針對IO的再次優化
          b+tree,的父節點是不存數據的
           數據庫索引,其實一個節點剛好占的是硬盤的一頁空間
           由于索引節點不存數據
           一個硬盤頁,也就是一個節點的度就可以更大
           可以最大程度減少樹的高度
           之所以一個節點剛好占一頁,也是IO的問題,一次硬盤IO只能讀一頁
           這是結構上的改進
           效果就是一個節點一次IO的度更大了
           他這個意思就是說,如果有索引,一次索引查找,基本不會超過2次硬盤IO
           這還只是b-tree
           b-tree這玩意兒就讀B樹
           很多人讀B減數是誤讀
























          posted on 2015-04-07 22:39 abin 閱讀(424) 評論(0)  編輯  收藏 所屬分類: mysql
          主站蜘蛛池模板: 施甸县| 海丰县| 安泽县| 上犹县| 农安县| 南溪县| 锦州市| 甘孜县| 石林| 土默特左旗| 乐亭县| 桃源县| 海南省| 陆川县| 成都市| 阳谷县| 原平市| 榆社县| 西安市| 凤凰县| 泽州县| 禄丰县| 瑞昌市| 湟中县| 临澧县| 河西区| 岳池县| 青龙| 夹江县| 唐海县| 文登市| 渭南市| 南宫市| 新巴尔虎左旗| 哈尔滨市| 鹿邑县| 威远县| 马山县| 常德市| 沅江市| 华安县|