唯一索引和非唯一索引的区别简析
答案:2 悬赏:40 手机版
解决时间 2021-02-14 14:58
- 提问者网友:火车头
- 2021-02-14 10:12
唯一索引和非唯一索引的区别简析
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-02-14 10:43
这里说的聚集索引是聚簇索引吧。。。 聚簇索引即建立在聚簇上的索引,创建聚簇索引时,需要对已有表数据重新进行排序(若表中已有数据),即删除原始的表数据后再将排序结果按物理顺序插回,故聚簇索引建立完毕后,建立聚簇索引的列中的数据已经全部按序排列。 一个表中只能包含一个聚簇索引,但该索引可以包含多个列。 B-树索引中,聚簇索引的叶层就是数据页。 非聚簇索引类似书本索引,索引与数据存放在不同的物理区域,建立非聚簇索引时数据本身不进行排序。一个表中科含多个非聚簇索引。 B-树索引中,非聚簇索引的叶层仍是索引页,其以指针指向数据页实际存储位置。 唯一性索引保证表中没有两行在定义索引的列上具有重复值,ORACLE自动为主键和唯一键列创建唯一索引;主键本身就是唯一索引,反之不成立(唯一索引允许一个NULL值),唯一性索引比非唯一性索引效率高,故在一般情况下,在无重复值的列上应尽量建立唯一性索引。 若为谋个表的某个列创建了唯一索引,则即使这个列没有唯一值约束,也会被强制限制不能插入重复记录。 这样回答LZ满意么?
全部回答
- 1楼网友:神鬼未生
- 2021-02-14 11:01
1. 在表和索引设计阶段,如果可能,字段设定为不允许null,索引设定为唯一。这样节约存储空间并提高了io效率。
2. 聚集索引键列应该尽量选用窄的字段,因为非聚集索引会引用其键列。如果聚集键过大则会使非聚集索引同时也占用更多存储空间。
3. sql server在创建索引时,默认是创建非唯一的。所以在创建索引时,要认真考虑是否可以创建为唯一索引。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯