复合非聚集索引的问题
表如下:
id 主键
日期 聚集索引
店铺
班次
大类
小类
产品名称
规格
单位
单价
因为需要生成的报表比较多样化,所以得有非聚集索引。
我之前发过帖子问相关问题,有人给的回答中,建立的2个复合非聚集索引里是有重复的字段的。
比如
非聚集1:店铺+班次+产品名称
非聚集2:店铺+班次+大类+小类
同一个表中的2个复合索引,用到同样的字段,是怎么理解?
是以实际业务中需要查询的条件来定义的吗?
非聚集1:店铺+班次+产品名称——适用于指定店铺指定班次指定产品的查询统计
非聚集2:店铺+班次+大类+小类——适用于指定店铺指定班次指定大小类别的查询统计
是这样理解?还是我理解错了?
------解决方案--------------------这个
没听说会忽略重复。
------解决方案--------------------复合索引需要注意字段的个数和次序,一般情况字段太多没有意义
非聚集1:店铺+班次+产品名称
非聚集2:店铺+班次+大类+小类
如果覆盖两个查询当然也没有问题,但是一般各字段条件(你这里5个字段)自由选择情况下同样两个非聚集索引则应该调整次序,比如5个字段出现在条件的几率如果最高的是
店铺+班次+产品名称
店铺+班次+大类+小类
也可能出现
大类+小类
产品名称+大类
的话,同样两个聚集索引,则应该调整为
非聚集1:店铺+班次+产品名称
非聚集2:大类+小类+班次+店铺