复合索引在什么情况下使用

时间:2020-12-12 20:57:17

 http://topic.csdn.net/t/20060813/16/4946416.html

1、复合索引使用的目的是什么?
:能形成索引覆盖,提高where语句的查询效率

2、一个复合索引是否可以代替多个单一索引?
:复合索引的使用原则是第一个条件应该是复合索引的第一列,依次类推,否则复合索引不会被使用
所以,正常情况下复合索引不能替代多个单一索引

3、在进行哪些类型的查询时,使用复合索引会比较有效?
:如果一个表中的数据在查询时有多个字段总是同时出现则这些字段就可以作为复合索引,形成索引覆盖可以提高查询的效率

4、符合索引中索引列的排序原则是什么?
:复合索引的使用原则是第一个条件应该是复合索引的第一列,依次类推

5、什么情况下不适合使用复合索引?
:建立索引的目的就是帮助查询,如果查寻用不到则索引就没有必要建立,另外如果数据表过大(5w以上)则有些字段(字符型长度超过(40))不适合作为索引,另外如果表是经常需要更新的也不适合做索引

 

根据你的where条件选择符合索引.如果查询是根据多个列,如where   Name= 'aa '   and   class= 'bb ',那么在Name和Class上建立符合索引会比较好.

create   index   idx_test   on   表(Name,Class)

但是符合索引的顺序一定要和查询的顺序相同才有效,如果顺序不同,那就没有效果了.

是否建立符合索引要根据查询的需要,如果很多查询都是where   Name= 'aa '   and   class= 'bb '这样的形式,那建立符合索引就非常好.如果有一部分查询是where   class= 'cc '   那么你就应该在class上边建立单索引.所以最重要的是根据查询的条件.