不是说主键标识,默认就是聚合,唯一索引吗?还需要建吗?还有,文章有分类编号CID,要用到这个对文章分类查询,这个需要建索引吗?(它建聚合索引合适吗?)是不是只要where经常用到的参数查询,都应该建索引啊?

解决方案 »

  1.   

    不是说主键标识,默认就是聚合,唯一索引吗?还需要建吗?
    ----------------------------------------------------------没搞懂楼主这个问的是还要建立什么? 字段已经在主键中, 则一般不会在这个字段上建立索引, 但其他高频繁的用于条件或者job的字段建立索引还是必要的.
      

  2.   

    还有,文章有分类编号CID,要用到这个对文章分类查询,这个需要建索引吗?(它建聚合索引合适吗?)
    --------------------------------------------------------------------------------聚合(集)影响记录的存储顺序, 换句话说, 数据的存取都在这个顺序上进行
    所以如果你的聚合导致数据的每次变化都要调整数据存储顺序, 或者是经常做的检索都不是这个顺序. 那么你的聚集索引选择的列就不合理.另外, 聚集索引键值是其他索引指向实际数据的指针, 所以聚集索引值的任何变化, 所有索引都受影响, 而且其他索引检索数据得通过聚集索引(除非不检索原始数据就能拿到所有信息, 例如覆盖索引), 所以这个因素也是选择聚集索引列时要考虑的所以是否对于文章分类编号建立聚合索引, 参考上述原则自己回答即可.
      

  3.   

    是不是只要where经常用到的参数查询,都应该建索引啊?
    ------------------------------------------------------不一定, 例如性别, 他们建立索引就不太合理, 因为这种值的唯一性太小了, 除非检索的条件恰好是选择了所占比例很小的一部分, 否则都要扫描大部分数据, 这种情况直接扫描表往往更快而且索引太多的话, 数据变化的效率会受到影响.所以一般选择经常使用, 并且列的宽度比较小, 而且它们的唯一性比较高的这些列建立索引
      

  4.   

    谢谢,老大,不过,小弟还是不是很明白:
    如果你的聚合导致数据的每次变化都要调整数据存储顺序???文章有分类编号CID 需要建索引吗?建,是聚合还是非聚合好呢?我就考虑到,存取顺序是在一起的,查询某个分类的文章速度快,所以建聚合索引。
      

  5.   

    我现在感觉聚集索引还是不用算了。一个表有主键,它默认就是聚集索引了。那根据title查询,varchar(100 ),需要做全文索引吗?还是就建个非聚合索引呢?