首页 > MySQL > MySQL联合索引

MySQL联合索引

来源:原创 作者:thomas 分类:MySQL 阅读:526 日期:2014-05-20

MySQL联合索引,又名组合索引、复合索引、多列索引

联合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不知道姓,电话簿将没有用处。

所以说创建联合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对前几列执行搜索时,复合索引非常有用;仅对后面的任意列执行搜索时,复合索引则没有用处。

联合索引的最左优先(最左前缀)原则:

联合索引的第一个字段必须出现在查询组句中,这个索引才会被用到。

如果有一个组合索引(col_a,col_b,col_c)

下面的情况都会用到这个索引:

col_a = "some value";

col_a = "some value" and col_b = "some value";

col_a = "some value" and col_b = "some value" and col_c = "some value";

col_b = "some value" and col_a = "some value" and col_c = "some value";

对于最后一条语句,mysql会自动优化成第三条的样子~~。

下面的情况就不会用到索引:

col_b = "aaaaaa";

col_b = "aaaa" and col_c = "cccccc";

 

热门文章 更多>

微信扫一扫,关注技术十日谈