mysql综合索引理论

时间:2012-09-11 23:51:54

标签: mysql composite-index

我的sql是:select id,name,city,type from company where city=? and type=?。所以我创建了两个索引:一个是城市字段,另一个是类型字段。所以我的问题是:是否有必要在城市和类型上创建复合索引?如果需要,为什么?两个复合索引btree索引是怎样的?结构VS单索引btree结构。 提前致谢

1 个答案:

答案 0 :(得分:0)

是的,在这种情况下,您需要使用复合city + type索引来获得最大可能的性能。

只要mysql一次只能使用一个索引(少数例外情况,不是这里的情况) - 它只会检查citytype以减少所有表数据,然后执行扫描以找到确切的行。

如果你有复合索引 - 那么mysql将能够解决两个city=? and type=?条件,因此不需要额外的扫描来返回结果集。

  

两个复合索引btree索引结构VS单索引btree结构如何。

没有2个复合btree结构。如果创建复合索引,则会创建包含两列数据的单个b树结构。这就是复合指数中的顺序很重要的原因。