索引的概念
官方定义:索引是建立在表的一列或多列上的辅助对象。可以加快对表的访问速率。
索引类似书的目录。
《转》索引的分类
逻辑上:
Single column 单行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B-tree:
Normal 正常型B树
Rever Key 反转型B树
Bitmap 位图索引
单行索引:
基于单个列所建立的索引
语法: create index 索引名 on 表名(列名)
<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347383mj4N.png"></a>
多行索引:
基于两列或多列建立的索引,在一张表上可以有多个索引,但要求列的组合都不相同
例如:
<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347383VPRe.png"></a>
唯一索引:
当这一列数据中,任意两行的值都不相同,可以创建唯一索引。
当创建 primary key 或者 unique constraint时 唯一索引都会被自动建立
语法: create unique index 索引名 on 表名(列名);
<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347384Mirj.png"></a>
非唯一索引
单行索引,多行索引,唯一索引,非唯一索引都属于B*数索引,这种数索引适合索引DTP(动态)欢迎
索引两大类,B*数索引和位图索引
另外一种位图索引适合大型静态表仓库环境
例如表中有很多重复的值,但很少去做改动时,适合创建位图索引。
位图索引以一种压缩形式存放,因此占用空间较少。
语法:create bitmap index 索引名 on 表名(列1,列2…);
<a href="http://zhengweiit.blog.51cto.com/attachment/201103/17/1109863_1300347384icx5.png"></a>
本文转自 郑伟 51CTO博客,原文链接:http://blog.51cto.com/zhengweiit/517798