(1)也称多列索引、复合索引。
(2)联合索引就是把多个列按照顺序放到一个索引树上。
(3)一个索引上最多可以建16列。
(4)联合索引可以看成排好序的数组。
排序规则是:先按照第一个列进行排序,第二列再按照第一列排好序的基础上再进行排序,依次类推
(5)需要按照最左前缀原则才能生效
最左前缀原则:按照最左边的列开始的顺序并且不能跳过其中的列。
如:(name, age,position)是一个联合索引,支持(name)(name, age)(name, age,position)查找,不支持( age,position)查找
有的时候你没有使用最左前缀原则写sql,优化器可能会帮你进行优化成最左前缀原则,如(age,name )也可能使用联合索引。但是写sql 的时候还是要严格按照最左前缀原则而不是依靠优化器
5.6及之后索引条件下推对范围查询导致索引失效和跳字段导致索引失效进行了优化。 8中使用了松散索引扫描,对没有带头大哥的情况进行了优化
(6)联合索引能使用到的索引列越多越好
(7)如果表可以建联合索引就优先建联合索引,而不是分开多个单索引。
(8)范围查找会导致其右边的列索引失效
(9)or肯定也是会使联合索引失效。原因是联合索引树结构和最左前缀原则中可知