求大神给个sql聚簇索引的实例,我光看定义看不懂呀 另外聚簇索引和unique索引有啥区别?

 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
liuyx_know
推荐于2016-03-10 · TA获得超过425个赞
知道小有建树答主
回答量:506
采纳率:100%
帮助的人:416万
展开全部
ALTER TABLE [tra].[tblShipment_CSM] ADD CONSTRAINT [IX_tblShipment_CSM] UNIQUE CLUSTERED
(
[Company] ASC,
[Facility] ASC,
[ConsignmentID] ASC,
[StartingPoint] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

UNIQUE INDEX 和 Primary key 差不多,它要求索引包含的值必须在表中是唯一的,不能重复。CLUSTERED 聚族索引是要求表的数据在存储时要按索引的先后顺序写入磁盘,这种索引可以减少扫描磁盘的次数,减少IO的读取。
更多追问追答
追问
我真的不知道你在说啥。。因为我是经管的 所以学的很浅 你能给我一个比较简单的例子吗?
追答
假设这个下面的数据表 tblProduct,它有一条记录在里边:
Company Product number Product name Status
100 1000A Book A 20

如果在这个表上有个UNIQUE索引,索引包含的列是 Company, Product number,你在往这个表写入下面的数据:
Company Product number Product name Status
100 1000A Book B 20

数据库会提示错误,写入数据失败,因为产品 1000A 在公司 100 中已经存在。

如果在这个表上有个CLUSTERED 索引,索引包含的列也是 Company, Product number,你在往这个表写入下面的数据:
Company Product number Product name Status
000 1000A Book B 20

这笔数据数据库会存储在已有记录的前面如下,因为公司 000 小于 公司 100
Company Product number Product name Status
000 1000A Book B 20
100 1000A Book A 20
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式