码迷,mamicode.com
首页 > 编程语言 > 详细

(3.3)常用知识-索引与排序(未完)

时间:2018-06-04 21:33:50      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:导致   记录   基于   column   不重复   定位   计算   3.3   建立   

1.索引与排序的关系

  经过多番尝试,我发现,直接select * from table 默认是会按聚集索引来排序的。

  那如果order by column ,column中有非聚集索引,排序用使用该索引吗?答案是不会,只有是聚集索引的时候才会根据其索引来排序。

2.索引的创建于维护

 (1)创建聚集索引的选择(一般为主键自增ID)

  • 数据变化的顺序应该尽可能考虑和聚集索引一致,如果不一致,则每次在数据变化时,都需要调整表中的记录存储顺序,这会大大降低存储效率。    
  • 列宽短:由于非聚集索引都会指向聚集索引,列宽越长则非聚集索引需要的空间越大,导致占页越多,引起更多页扫描。
  • 尽量选唯一和列值不可为空的列。有益于精准定位

  【1】多考虑列的顺序:如果有索引包含多个列的话,用于匹配和参与连接的列应该放在最前面,其他的列应该基于其非重复级别进行排序,也就是说,从最不重复的列到最重复的列:

  【2】考虑列的宽度:对于复合索引,应该考虑把宽度小的列放在索引的前面,这样有利于数据检索

  【3】考虑在计算列上建立索引(表达式/函数索引):当确定需要计算或者转换时,可以在索引上就构建出   来,而不是在检索数据的时候做这件事

(3.3)常用知识-索引与排序(未完)

标签:导致   记录   基于   column   不重复   定位   计算   3.3   建立   

原文地址:https://www.cnblogs.com/gered/p/9135379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!