• 数据库中什么样的字段适合建索引?
  • 发布于 2个月前
  • 1210 热度
    0 评论
  • 张蜚
  • 22 粉丝 35 篇博客
  •   

我们知道数据库中的索引是提高数据库查询速度最为有效的方法之一,但是索引的建立也是有讲究的,并不是所有的字段都适合建立索引的,今天我们就来说一下数据库中索引的建立技巧,什么样的字段适合建索引,什么样的字段不适合建索引。

适合建索引的字段:

1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,凡是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上
6、索引应该建在小字段上
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?假如是,则可以建立复合索引;否则考虑单字段索引;
C、假如复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、假如复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、假如既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
10、在经常需要排序order by的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
11、在经常使用在 WHERE 子句中的列上面创建索引,加快条件的判断速度。建立索引,一般按照 select 的 where 条件来建立,比如:select 的条件是 where f1 and f2,那么如果我们在字段 f1 或字段 f2 上建立索引是没有用的,只有在字段 f1 和 f2 上同时建立索引才有用。


不适合建索引的字段:

1.字段的值是枚举类型的,类似存储性别这种只有男,女两种情况,或者审批状态只有审批中,审批拒绝,审批通过等几种固定值的字段不适合建索引

2.字段类型是nvarchar(MAX),varchar(max),text,xml等存储超长文件的字段不适合建索引

3.存储二进制内容的的字段不适合建索引

4.需要频繁更新的表不要建立太多索引


好了,以上就是我总结的数据库适合建立索引和不适合建立索引的情况,希望对大家在合理设计数据库时能有所帮助。


用户评论