多个索引,和联合索引

来源:5-2 MySQL创建高性能的索引考察点

silas666

2017-10-15

如果where条件 有三个 a and b and c(属于一个表)
是分别对a,b,c加索引好呢?还是 对abc用联合索引,如果分别对a,b,c加索引,这三个索引都能用到么?

感觉对索引这里有好多不明白的,老师能推荐一本书么?谢谢老师

写回答

1回答

Jason

2017-10-16

添加复合索引最合适,如果给单个字段添加索引,无法同时使用三个索引,你可以这么想,如果我要搜索一个国家的一个省份的一个城市,是分别给国家,省份,城市建立索引好,还是给国家和省份和城市建立复合索引好,如果选择后者,他会根据范围依次搜索,先找到国家,然后缩小范围到该国家的省份,然后在搜索省份,再缩小范围到城市,最后搜索到城市,如果使用前者,当我们搜索到国家的时候,因为没有使用复合索引,你可能需要把所有国家的所有省份都扫一遍,这就是为什么要使用复合索引的原因。至于书籍的话,可以选择《MySQL必知必会》和《深入浅出MySQL》、《高性能MySQL》,最后一本比较深入,建议先看看前两本。

0
2
Jason
回复
silas666
不客气
2017-10-16
共2条回复

360大牛带你横扫PHP职场 全面解读PHP面试

全面、系统剖析PHP面试,拿下心仪Offer

1817 学习 · 464 问题

查看课程