索引设计原则

PPG007 ... 2021-12-28 About 1 min

# 索引设计原则

  • 适合索引的列是出现在 where 子句中的列,或者连接子句中指定的列。
  • 基数较小的表,索引效果较差,没有必要在此列建立索引。
  • 使用短索引,如果对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间,如果搜索词超过索引前缀长度,则使用索引排除不匹配的行,然后检查其佘行是否可能匹配。
  • 不要过度索引。索引需要额外的磁盘空间,并降低写操作的性能。在修改表內容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长。所以只保持需要的索引有利于查询即可。
  • 定义有外键的数据列一定要建立索引。
  • 更新频繁字段不适合创建索引。
  • 若是不能有效区分数据的列不适合做索引列(如性别,男女未知,最多也就三种,区分度实在太低)。
  • 尽量的扩展索引,不要新建索引。比如表中已经有 a 的索引,现在要加 (a,b) 的索引,那么只需要修改原来的索引即可。
  • 对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。
  • 对于定义为 text、 Image 和 bit 的数据类型的列不要建立索引。
Last update: December 28, 2021 13:51
Contributors: PPG007