关于索引的使用

一般情况下,sql默认的索引是聚集索引,但是这并不是最佳的。合理的索引设计还是要建立在对各种查询的分析和预测的基础上。

一:有大量重复且经常范围查询的(如时间,)order by ,group by查询的。最好使用聚集索引。为什么呢。因为聚集索引就像是新华字典里面的按拼音排序。是整张表的排序方式,那么上面的条件是不是就可以使用这种方式就可以很快的找到数据?呵呵

二:经常存取多列,且每列都含有重复值可以考虑使用组合索引。而组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。 对于不同值小的列,如性别 这种还是不要建立索引的好.对于不同值较多的列我觉得应该是用非聚集索引。这就像新华字典里面的按部首查询。这样的情况,“部首查询”反而更快。、

三:避免使用不兼容的类型.float 和int,char 和varchar.因为如果不兼容的话使优化器无法执行一些本来可以进行的优化操作。

四:exists比in的效率高太多了。。这几乎是常识。这里面牵涉到全表扫描和范围扫描.

人生匆匆几十年,BeYourself...
原文地址:https://www.cnblogs.com/huagege/p/3963909.html