主键与索引

原创
2020/03/25 11:20
阅读数 86

唯一索引:该字段没有重复值,但允许空值(该字段可以有多个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.  主键列不允许空值,而唯一性索引列允许空值。 

主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中
 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部