逻辑上:
-
Single column 单列索引
-
Concatenated 多列索引
-
Unique 唯一索引
-
NonUnique 非唯一索引
-
Function-based 函数索引
-
Domain 域索引
物理上:
-
Partitioned分区索引
-
NonPartitioned非分区索引
-
B-tree:
-
Normal 正常型B树
-
Rever Key 反转型B树
-
Bitmap 位图索引
索引结构:
B-tree:
-
适合与大量的增,删,改(OLTP)
-
不能用于包含OR操作符的查询
-
适合高基数的列(唯一值多)
-
典型的树状结构
-
每个节点都是数据块
-
大多数都是物理上一层,两层或三层不定,逻辑上三层,mysql一般都是3层除非数据量非常大 才会变成四层
-
叶子块数据是排序的,从左向右递增
-
在分支块和根块中放的是索引的范围
Bitmap:
-
适合决策支持系统
-
做UPDATE代价非常高
-
非常适合OR操作符的查询
-
基数比较少的时候才能建位图索引
树形结构:
-
索引头:
-
开始ROWID,结束ROWID(先列出索引的最大范围)
-
BITMAP
-
每一个BIT对应着一个ROWID,它的值是1还是0,如果是1,表示着BIT对应的ROWID有值