暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
唯一索引与主键索引的比较.docx
85
2页
0次
2025-04-18
免费下载
唯一索引与主键索引的比较
唯一索引
唯一索引不允许两行具有相同的索引值。
如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起
保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在
employee
表中的职员姓氏
(lname)
列上创建了唯一索引,则所有职员不能同姓。
主键索引
主键索引是唯一索引的特殊类型。
数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类
型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速
访问数据。
它们的一些比较:
(1)
对于主健
/unique constraint
oracle/sql server/mysql
等都会自动建立唯一索引;
(2)
主键不一定只包含一个字段,所以如果你在主键的其中一个字段建唯一索引还是必要的;
(3)
主健可作外健,唯一索引不可;
(4)
主健不可为空,唯一索引可;
(5)
主健也可是多个字段的组合;
(6)
主键与唯一索引不同的是:
a.
not null
属性;
b.
每个表只能有一个。
1
、主键
主键
ID
,主键既是约束也是索引,同时也用于对象缓存的键值。
2
、索引
*
组合或者引用关系的子表(数据量较大的时候),需要在关联主
表的列上建立非聚集索引(如订单明细表中的产品
ID
字段、订单明细
表中关联的订单
ID
字段)
*
索引键的大小不能超过
900
个字节,当列表的大小超过
900
字节或者若干列的和超过
900
个字节时,数据库将报错。
*
表中如果建有大量索引将会影响
INSERT
UPDATE
DELETE
语句的性能,因为在表中的数据更改时,所有的索引都将必须进行适
当的调整。需要避免对经常更新的表进行过多的索引,并且索引应保
持较窄,就是说:列要尽可能的少。
*
为经常用于查询的谓词创建索引,如用于下拉参照快速查找的
code
name
等。在平台现有下拉参照的查询
sql
语句中的
like
条件
语句要改成不带前置通配符。还有需要关注
Order By
Group By
谓词的索引设计,
Order By
Group By
的谓词是需要排序的,某些
情况下为
Order By
Group By
的谓词建立索引,会避免查询时的
排序动作。
*
对于内容基本重复的列,比如只有
1
0
,禁止建立索引,因为
该索引选择性极差,在特定的情况下会误导优化器做出错误的选择,
导致查询速度极大下降。
*
当一个索引有多个列构成时,应注意将选择性强的列放在前面。
仅仅前后次序的不同,性能上就可能出现数量级的差异。
*
对小表进行索引可能不能产生优化效果,因为查询优化器在遍历
用于搜索数据的索引时,花费的时间可能比执行简单的表扫描还长,
设计索引时需要考虑表的大小。记录数不大于
100
的表不要建立索引。
频繁作的小数量表不建建立索引(记录数不大于
5000
条)
of 2
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜