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