少年阿賓

          那些青春的歲月

            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 閱讀(419) 評論(0)  編輯  收藏 所屬分類: mysql
          主站蜘蛛池模板: 社旗县| 太湖县| 文成县| 崇阳县| 开化县| 多伦县| 綦江县| 乌兰浩特市| 兴隆县| 海安县| 元阳县| 聂荣县| 卓尼县| 容城县| 历史| 邢台市| 循化| 勃利县| 海宁市| 鄂尔多斯市| 文成县| 东阳市| 丰台区| 三穗县| 林州市| 秦皇岛市| 三台县| 孙吴县| 班戈县| 富阳市| 松原市| 黄平县| 建平县| 成武县| 航空| 晋城| 乌审旗| 定远县| 玉环县| 鱼台县| 柘荣县|