索引高度和索引段大小計算
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索引
- LOB欄位相關概念(自動建立LOB索引段和重建索引方法)索引
- mongodb建立索引和刪除索引和背景索引backgroundMongoDB索引
- Python Numpy 切片和索引(高階索引、布林索引、花式索引)Python索引
- MySQL 字串索引和字首索引MySql字串索引
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- MySQL 唯一索引和普通索引MySql索引
- MySQL 聚簇索引 和覆蓋索引MySql索引
- 從InnoDB 索引執行簡述 聚集索引和非聚集索引、覆蓋索引、回表、索引下推索引
- 【TUNE_ORACLE】Oracle索引設計思想(一)索引片和匹配列概述Oracle索引
- [20181020]lob欄位的索引段.txt索引
- 唯一索引和普通索引的選擇索引
- 淺析InnoDB引擎的索引和索引原理索引
- MySQL中Innodb如何計算索引的統計資訊?MySql索引
- 索引設計(組合索引適用場景)索引
- 使用Elasticsearch的動態索引和索引優化Elasticsearch索引優化
- oracle 索引和不走索引的幾種形式Oracle索引
- mysql索引設計MySql索引
- 聯合索引和多個單列索引使用中的索引命中情況及索引建立原則索引
- MySQL實戰45講——普通索引和唯一索引MySql索引
- MySQL中的聚簇索引和非聚簇索引MySql索引
- multi-key索引和wildCard索引場景比較索引
- MySQL:2020 端午節隨筆(索引下探和唯一索引特殊執行計劃)MySql索引
- 普通索引和唯一索引,應該怎麼選擇?索引
- elasticsearch如何設計索引Elasticsearch索引
- MySQL管理表和索引MySql索引
- 索引原理和優勢索引
- 理解索引:索引優化索引優化
- mysql索引之字首索引MySql索引
- ElasticSearch 索引 VS MySQL 索引Elasticsearch索引MySql
- 什麼是行儲存和列儲存?正排索引和倒排索引?MySQL既不是倒排索引,也索引MySql
- SQL優化之統計資訊和索引SQL優化索引
- Hbase的二級索引和RowKey的設計索引
- 如何獲取 PostgreSQL 資料庫中的表大小、資料庫大小、索引大小、模式大小、表空間大小、列大小SQL資料庫索引模式
- oracle全文索引之同步和優化索引做了什麼Oracle索引優化
- 資料庫系列:字首索引和索引長度的取捨資料庫索引
- 計算廣告實現入門-索引布林表示式索引
- SQL Server索引 - 非聚集索引SQLServer索引
- MySQL索引系列:全文索引MySql索引