1.数据量超过三百,理论上应创建索引
2.经常与其他表链接的表,在链接字段应创建索引 on 两边的字段,都要建立索引
3.经常出现在where子句中的字段,尤其是大表,应创建索引
4.索引应创建在选择性高,重复度低的字段上,如员工表,姓名和性别都作为查询条件,姓名更适合建立索引。如果两个同时建立了索引,MySQL也会自动选择以姓名作为索引查询
5.索引应该建立在小字段上,对于大的文本甚至超长字段,尽量不建立索引
6.复合索引
① 正确选择复合索引中的主列字段,一般是选择性较好的字段
② 复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有? 如果是,则可以建立复合索引;否则考虑单字段索引
③ 如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引
④ 如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引
7.索引维护也需要成本,频繁增删的数据表,谨慎选择索引
-
查询中排序的字段,应该创建索引( B + tree 有顺序)
-
统计或者分组字段,应该创建索引
网友评论