oracle数据库(索引)

索引
可以建立类似目录的数据库对象,实现数据快速查询,这就是索引。
主键约束/唯一约束 : 系统会自动建立索引,以SYS_开始
1. 为一个表的列或组合列建立索引后,读取的速度加快
2. 但写的速度却减慢了,因为插入,修改和删除数据后,还要更新索引
3. 索引也需要空间,系统要占用大约为表1.2倍的硬盘和内存空间来保存索引,增加了空间负担
索引创建的原则:
1. 在大表上建立索引才有意义
2. 在where子句或是连接条件上经常引用的列上建立索引
3. 索引的层次不要超过4层
提高查询效率是以消耗一定的系统资源为代价的,索引不能盲目的建立,这是考验一个dba是否优秀的很重要的指标
按照索引的存储结构分类:B树索引;位图索引;反向键索引
按照索引值是否唯一分类:唯一索引;非唯一索引
按索引列分类:单列索引;组合索引;基于函数的索引

建立索引的列的特点:
经常需要搜索的列
主键列
经常用在连接的列
经常需要根据范围搜索的列
经常需要排序的列
经常出现在where子句中的列
不应该建立索引的列:
查询中很少使用或者参考的列
只有很少数据值的列
定义为lob类型的列
修改性能远远大于检索性能
避免限定索引:
避免使用不等操作符(<>、!=)
避免使用is null或is not null
避免在where子句中使用函数
避免在比较时使用不匹配的数据类型

你可能感兴趣的:(oracle数据库(索引))