哪些列适合建立索引

哪些列适合建立索引

  • 在经常需要搜索的列上,建立索引,增加搜索速度。
  • 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。
  • 在经常用在连接的列上,这些列主要是外键,可以加快连接速度。
  • 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,所以其指定的范围是连续的。
  • 在经常需要排列的列上创建索引,因为索引已经排序,这样可以利用索引的排序,加快查询的速度。
  • 在经常需要使用WHERE子句的列上创建索引,加快条件的判断速度。

哪些列不利于创建索引

  • 对于查询中很少使用或者参考列不应该创建索引。这是因为,既然这些列很少使用,那么创建和不创建都没有效果,反而由于增加了索引,降低了系统的维护和增大了空间的需求。
  • 对于那些是有很少数据值的列不应添加索引。由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据很大比例,即需要在表中搜索的数据行比例很大,增加缩影并不能明显的加快搜索速度。
  • 对于那些定义为text,image,bit数据类型的列不应添加索引,这是因为这些数据要么太大,要么取值很小。
  • 当修改性能大于检索性能的时候不应添加索引。这是因为,修改性能和检索性能是相互矛盾的,当增加索引时,会提高检索性能,但是会降低修改性能。当减小索引时,会提高修改性能,降低索引性能。因此,当修改性能远远大于检索性能时,不应该添加索引。

参考自http://blog.csdn.net/kennyrose/article/details/7532032

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 之前的文章一直在规避索引的建立去优化数据库,不是不想讲,而是这个太重要,必须抽出来讲。今天我们就来研究下数据库索引...
    JackFrost_fuzhu阅读 4,756评论 0 70
  • 索引的基本原理,以及数据是如何被访问的 (一)SQLS如何访问没有建立索引的数据表 Heap译成汉语叫做“堆”,其...
    安易学车阅读 3,488评论 0 8
  • 基本介绍 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 例如这样一个查询:select * from...
    安易学车阅读 1,331评论 0 6
  • 风 吹落了了思念的雨 带着它一同滋润心芽 风 吹不散思念的情 将随它一起飘落天涯 春风它将我带进那梦里 不知你是否...
    Im丫丫阅读 233评论 0 0
  • 基础 SELECT[DISTINCT] column_name[TOP number|percent colum...
    crf1028阅读 469评论 0 0