B-树索引
位图索引
HASH索引
索引编排表
反转键索引
基于函数的索引
分区索引
位图索引
HASH索引
索引编排表
反转键索引
基于函数的索引
分区索引
本地和全局索引
索引结构:
B-tree:
适合与大量的增、删、改(OLTP);
不能用包含OR操作符的查询;
适合高基数的列(唯一值多);
常在访问小数据量的情况下比较适用,比如你访问不超过表中数据的5%,当然这只是个相对的比率,适用于一般的情况。
典型的树状结构;
每个结点都是数据块;
大多都是物理上一层、两层或三层不定,逻辑上三层;
叶子块数据是排序的,从左向右递增;
在分支块和根块中放的是索引的范围;
Bitmap:
适合与决策支持系统;
做UPDATE代价非常高;
非常适合OR操作符的查询;
基数比较少的时候才能建位图索引;
在数据仓库中使用较多,用于低基数列,比如性别之类重复值很多的字段,基数越小越好。
反转键索引:
反转索引时为了解决热块冲突的问题。比如有ID 为1,2,3,4,5,都在索引块的BLOCK A中。当用id =1 访问时,访问的是BLOCK A。当用id =2 访问时,访问的是BLOCK A。这样就会导致索引出现热块(关于热快请参考http://zhuyuehua.iteye.com/blog/1874708)。如果反转后存放,就可能1在BLOCK A,2在BLOCK B
访问的是BLOCK A。当用id =1 访问时,访问的是BLOCK A。当用id =2 访问时,访问的是BLOCK B。
这样就解决了索引的热快问题。