联合索引
多列组成的索引
最左匹配原则
假设我们有两列a,b,a和b是联合索引,他的顺序是a,b,我们在where语句中调用a=? and b=?的时候就会走联合索引,如果调用where a = ?的时候也会走索引,但是当我们使用where b = ?的时候就不会走这个联合索引
成因:
mysql创建复合索引的规则是首先会对复合索引的最左边,也就是索引中的第一个字段进行排序,在第一个字段排序的基础上,在对索引上第二个字段进行排序,其实就像是实现类似order by 字段1,字段2这样的排序规则,那么第一个字段是绝对有序的,而第二个字段就是无序的了,因此一般情况下直接只用第二个字段判断是用不到索引的,这就是为什么mysql要强调联合索引最左匹配原则的原因。
索引是键的越多越好吗?
答案是否定的
数据量小的表不需要建立索引,建立会增加额外的索引开销
数据变更需要维护索引,意味着更多的索引意味着更多的维护成本
更多的索引也需要跟多的存储空间
---------------------
作者:fansenjun
来源:优快云
原文:https://blog.youkuaiyun.com/fansenjun/article/details/86028589
版权声明:本文为博主原创文章,转载请附上博文链接!