唯一索引:该字段没有重复值,但允许空值(该字段可以有多个null值),一张table只允许一个主键,但可以创建多个unique index
函数索引:如果在我们的查询条件使用了函数,那么索引就不可用了。可以用建立函数索引的方式,来解决这个问题
例如:
select * from product where nvl(price,0.0)>1000.0 ;
这里,nvl(price,0.0)使用了函数,索引不能利用price字段上做的索引了
我们来创建函数索引
create index index_price on product(nvl(price,0.0));
其他:
1. 创建表时,不能在同一个字段上建立两个索引(主键默认建立唯一索引) 。
2. 唯一索引能极大的提高查询速度,而且还有唯一约束的作用。一般索引,只能提高30%左右的速度
经常插入,修改,应在查询允许的情况下,尽量减少索引,因为添加索引,插入,修改等操作,需要更多的时间
3. 主键一定是唯一性索引,唯一性索引并不一定就是主键。
4. 一个表中可以有多个唯一性索引,但只能有一个主键。
5. 主键列不允许空值,而唯一性索引列允许空值。
主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中
来源:oschina
链接:https://my.oschina.net/u/4177395/blog/3210777