索引
1.什么是索引
索引,相当于书的目录,提高数据检索速度。提高效率(视图不可以提高效率)
- 一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中
- 索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度
-
索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定何时使用索引. 用户不用在查询语句中指定使用哪个索引
-
在删除一个表时, 所有基于该表的索引会自动被删除
-
通过指针加速 Oracle 服务器的查询速度
-
通过快速定位数据的方法,减少磁盘 I/O
2.创建索引
create index myindex on emp(deptno) ;
3.查找索引
select myindex from user_indexes;
4.索引的模拟
select * from emp where empno=7521; 当执行语句后 找到索引,然后根据编号地址找到具体位置。(差不多理解成目录)
使用主键查询数据最快速,因为主键本身就是“索引”,所以检索比较快。
5.使用场景
- 列中数据值分布范围很广
-
列经常在 WHERE 子句或连接条件中出现
-
表经常被访问而且数据量很大 ,访问的数据大概占数据总量的2%到4%
下列情况不要创建索引:
- 表很小
- 列不经常作为连接的条件或出现在where子语句后
- 查询数据大于2-%4%
- 表经常更新