索引 index
作用: 在数据库中用来加速对表的查询。
原理: 通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O
特点:
与表独立存放,但不能独立存在,必须属于某个表
由数据库自动维护,表被删除时,该表上的索引自动被删除。
索引的创建:
自动: 当在表上定义一个PRIMARY KEY 或者UNIQUE 约束条件时, 数据库自动创建一个对应的索引.
手动: 用户可以创建索引以加速查询.(不能乱指定,最好是经常要查的字段)
当创建索引的时候,Oracle会默认创建一个和当前表相关的索引页,
而索引页中保存了索引字段和真实的磁盘地址,
当用户发送sql语句带了索引的时候,Oracle会到索引页中查询索引字段,
直接定位磁盘IO,提取数据。所以索引数据快于全表扫描。
索引的维护
1.建立索引后,查询的时候需要在 where 条件中带索引的字段才可以使用索引。
2.在经常查询的字段上面建立索引。不要在所有字段上面建立索引。
3.因为索引是用来加快查询速度的,如果一张表经常做insert、delete、update,
而很少做 select,不建议建立索引,因为Oracle需要对索引进行额外的维护
如果一张表字段很少,不建议建立索引。
4.索引是由Oracle自动维护的。索引使用久了会产生索引碎片(磁盘碎片),
影响查询效果,所以使用久了需要手动进行维护(删除再重建)。