问个通用的问题,
比如有一个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上有聚集索引,莫非这样最高效?
如果仅针对这个查询,聚集索引建在UserId上最高效
还有种设计是不用自增的ItemId,而是用UserId和ItemTypeId做联合主键,并且聚集索引,哪种方法好?
聚集索引用一个字段和2个字段有啥区别没?
至于哪种更高效,你可以分别建立这两种索引,然后测试一下它们在不同数据量下的表现。
从感觉上看,在UserId上建聚集索引效率会更高。