记住几点:
1)索引也是一种对象,也需要存储空间,所以也可以管理。
2)索引是可选的对象,不是必须的。
3)索引虽然是可选的,换句话说,离开了索引,数据库照样转。
4)使用适当可以极大提升应用的性能。反过来说,使用不当,索引对性能的影响也很大---性能下降,还可能下降得很厉害。
5) 如何创建索引是一个技术活.
6) 如果使用索引则是一个更深入的学问。
7) 分区表上的索引,一个复杂的问题。
8) 索引虽然很复杂,但以书目类比,则较易理解,如果有去图书馆,映像就更深刻了。
======================================================
分类:
B树索引,经典的存储方式。
B树簇索引,和簇有关的B数索引。
哈希簇索引
反转索引,另外一种B树索引
位图索引
位图连接索引
======================================================oracle的标准索引结构是B×tree结构,一个B×tree结构由三种block组成
根块(root block):在B×tree里有且只有一个block,所有访问索引都从这开始,root block下有很多child blocks。
分支块(Branch blocks):这是中间层,branch block是没有什么限制的,它是随着leaf block的增加而增加的,branch block一般是4层,如果多于4层,就影响性能了。在我们删除行时,branch block是不被删除的。
叶块(leaf block):叶块是最底层,上面存储着索引条目和rowid