B树索引
1创建索引不指定unique ,btimap 那么表示创建的索引是B树索引.
2B树索引的组织结构类似一颗树,主要数据集中在叶子节点上,叶子节点包含索引列的值和记录行对应的物理地址rowid;
3默认会为主键创建一个B树索引
4无法给包含索引的创建索引.
B树索引逻辑结构图
B树索引是怎么搜索数据(只要4个步骤)
举例索引值为1020的实际数据
1)根节点
1020与 1001 1013比较,1020在1013后面(右子节点)
2)右子节点(1013 1017 1021)比较,1020在1017-1021之间(中子节点)
3)中子节点(1017,1018,1019,1020)比较,找到叶节点1020
4)叶节点1020中找到对应物理地址rowid,获取实际的数据。
查找其他数据也是4个步骤,B数索引保证无论查找哪个数据,所需要的步骤都是一样的,B代表平衡的意思.
创建B树索引
1用户在自己模式中创建索引,需要create index系统权限
2用户在其他用户模式中创建索引,需要create any index系统权限
3可以创建B树索引的类型
1)普通索引:在on后面指定索引基于的表名和列名,还可以为索引指定存储索引的表空间.
举例
/普通索引/
create index sal_index on scott.emp(sal)
tablespace MYSPACE;
2)唯一索引:保证索引列上不会有重复的值(比如1020)
举例
/唯一索引/
create unique index ename_index on scott.emp(ename)
tablespace MYSPACE;
3)复合索引:基于表中多个字段的索引
举例
/复合索引/
create index job_mgr_index on scott.emp(job,mgr)
tablespace MYSPACE;