首页 新闻 会员 周边

Sql Server数据库索引设计问题

0
悬赏园豆:5 [待解决问题]

问个通用的问题,
比如有一个UserItems表,里面有自增的ItemId主键,还有UserId和ItemTypeId等列,
还有个ItemTypes表,里面是ItemTypeId和ItemTypeName
日常查询是
select a.*, b.ItemTypeName
from UserItems a
inner join ItemTypes b on b.ItemTypeId = a.ItemTypeId
where a.UserId = xxx
索引怎么建好?

我看现有的表里好像特意设计成
UserItems表有非聚集的ItemId索引,在UserId上有聚集索引,莫非这样最高效?

灰灰狼的主页 灰灰狼 | 初学一级 | 园豆:5
提问于:2015-11-06 16:00
< >
分享
所有回答(2)
0

如果仅针对这个查询,聚集索引建在UserId上最高效

dudu | 园豆:30880 (高人七级) | 2015-11-06 16:44

还有种设计是不用自增的ItemId,而是用UserId和ItemTypeId做联合主键,并且聚集索引,哪种方法好?

支持(0) 反对(0) 灰灰狼 | 园豆:5 (初学一级) | 2015-11-06 18:02

聚集索引用一个字段和2个字段有啥区别没?

支持(0) 反对(0) 灰灰狼 | 园豆:5 (初学一级) | 2015-11-10 11:06
0

至于哪种更高效,你可以分别建立这两种索引,然后测试一下它们在不同数据量下的表现。

从感觉上看,在UserId上建聚集索引效率会更高。

何德海 | 园豆:481 (菜鸟二级) | 2015-11-07 11:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册