浅谈索引的概念、优缺点及创建原则

索引的原理

索引是对数据表中一列或多列的值用 B 树进行排序的一种结构,每次通过索引进行条件查询时,会根据 key 值直接在 B 树上进行搜索

索引的类型

索引 描述
唯一性索引 在索引列中的数据是唯一的
复合索引 一个索引创建在两个列或者多个列上
聚簇索引 数据表的物理顺序与索引顺序相同(字典的首字母查询)
非聚簇索引 数据表的物理顺序与索引顺序不同(字典的部首查询)

索引的优点

  • 加快数据的检索速度
  • 加快分组和排序速度
  • 加速表与表之间的连接

索引的缺点

  • 创建和维护索引需要耗费时间,数据量越大时间越长
  • 索引需要占用物理空间(聚簇索引需要的空间更大)
  • 对表中的数据进行增删改操作时,索引也要动态的维护

索引创建原则

应该建立索引的情况:

  • 在主键和外键上可以创建索引(主键创建时默认建立唯一性聚簇索引)
  • 在经常需要搜索的列上可以创建索引
  • 在经常需要排序的列上可以创建索引
  • 在经常使用在条件语句(WHERE)中的列上可以创建索引

不应该建立索引的情况:

  • 在很少使用的列中不应该建立索引
  • 有很少数据值的列不应该建立索引
  • text,image 和 bit 类型的列不应该增加索引
  • 当修改性能远远大于检索性能时,不应该创建索引
除特殊说明外本人博客均属原创,转载请注明出处:http://blog.johnhan.cn/blog_1106.html
京ICP备19044523号-1