索引高度和索引段大小計算
B*-Tree level (depth of the index from its root block to its leaf blocks).
A depth of 0 indicates that the root block and leaf block are the same.
假如一個欄位長為50位元組,總計1000萬行
需要多少個block的葉子節點
葉子節點的一個條目=欄位鍵值+rowid=50+6=56B
一個block容量=8KB
block=1000萬*56/8K=7萬
需要多少block二級分支節點
分支節點的一個條目=欄位鍵值+rowid=50+6=56B
一個block容量=8KB
block=7萬*56/8K=490
需要多少block一級分支節點
分支節點的一個條目=欄位鍵值+rowid=50+6=56B
一個block容量=8KB
block=490*56/8K=3.43
需要多少根節點
根節點的一個條目=欄位鍵值+rowid=50+6=56B
一個block容量=8KB
block=3.43*56/8K=0.0.2
得出結論索引高度為3,索引段大小=(1+4+490+7萬)*8KB=563M
如果欄位長度為10,則索引段大小=(4/5+490/5+7萬/5)*8KB=112M,索引高度為2,
因為4/5小於1,所以一級分支節點就不要再分了,就是根節點了
一個索引條目最小為7B(
欄位1B大小,rowid 6B大小),一個索引塊最多可以存放8K/7=1142個索引條目,根節點最多指向1142個分支節點,分支節點最多指向1142個葉子節點
索引高度為0,索引段最大8KB
索引高度為
1,索引段最大(1+1142)*8KB=
8.92M
索引高度為
2,索引段最大(1+1142+1142*1142)*8KB=
10G
索引高度為
3,索引段最大(1+1142+1142*1142+1142*1142*1142)*8KB=
11T
折中一下,平時一個
欄位20B,索引條目26B,一個索引塊最多可以存放307個索引條目,根節點最多指向307個分支節點,分支節點最多指向307個葉子節點
索引高度為0,索引段最大8KB
索引高度為
1,索引段最大(1+307)*8KB=
2.4M
索引高度為
2,索引段最大(1+307+307*307)*8KB=
739M
索引高度為
3,索引段最大(1+307+307*307+307*307*307)*8KB=
221G
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2142036/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql innodb索引高度MySql索引
- MySQL 庫大小、表大小、索引大小查詢命令MySql索引
- mongodb建立索引和刪除索引和背景索引backgroundMongoDB索引
- 字首索引,一種優化索引大小的解決方案索引優化
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- Python Numpy 切片和索引(高階索引、布林索引、花式索引)Python索引
- Oracle全域性索引和本地索引Oracle索引
- MySQL 唯一索引和普通索引MySql索引
- Oracle 索引和執行計劃Oracle索引
- mysql索引和執行計劃MySql索引
- ORACLE 大小寫導致找不到索引Oracle索引
- MySQL中Innodb如何計算索引的統計資訊?MySql索引
- MySQL 聚簇索引 和覆蓋索引MySql索引
- MySQL字首索引和索引選擇性MySql索引
- [轉]:bitmap索引和B*tree索引分析索引
- 從InnoDB 索引執行簡述 聚集索引和非聚集索引、覆蓋索引、回表、索引下推索引
- 【索引】Oracle之不可見索引和虛擬索引的比對索引Oracle
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- 索引成本計算的基礎知識索引
- Oracle如何預估將要建立的索引和表的大小Oracle索引
- 【TUNE_ORACLE】Oracle索引設計思想(一)索引片和匹配列概述Oracle索引
- 淺析InnoDB引擎的索引和索引原理索引
- 全域性索引和本地索引的比較索引
- 分割槽索引和全域性索引(轉載)索引
- 分割槽索引之本地(local index)索引和全域性索引(global index)索引Index
- [zt] 聚集索引和非聚集索引(sql server索引結構及其使用)索引SQLServer
- shrink 與rebuild對索引高度的影響對比Rebuild索引
- (7)mysql 索引的設計和使用MySql索引
- oracle如何估算即將建立的索引大小Oracle索引
- lucene索引檔案大小優化小結索引優化
- 【oracle 】如何估算即將建立的索引大小Oracle索引
- 本地索引、全域性索引、字首索引、非字首索引索引
- 認識SQLServer索引以及單列索引和多列索引的不同SQLServer索引
- [索引]Oracle RAC資料庫平行計算的使用索引Oracle資料庫
- 索引設計(組合索引適用場景)索引
- 使用Elasticsearch的動態索引和索引優化Elasticsearch索引優化