预习执行计划
实践
咱们先申明前置条件,创建表如下:
创建复合索引如下注意哦,索引使用的BTree:
我们先来一个提问,看如下两条sql,我们花5秒时间思考下,会走索引吗?...我们继续验证查询条件的顺序是否影响sql的执行计划. 为了方便截图,以下我主要使用SecureCRT查询....我们列举以上五条sql来验证,查询结果如下:
从上图很明显可以看出,where条件的顺序完全不影响索引的执行,但是很明显上面5条sql所有查询条件都是包含在复合索引内,那要是有查询条件不在符合索引内又是什么结果呢...这里发现不一样了,我们的复合索引顺序是name,code,createTime.
当出现非索引字段的查询条件时,只有包含了name的查询条件走了索引.这是为什么呢?...总结
对于复合索引 idx_A_B_C
有A、A and B、B and A、C and A、A and C、A and B and C、B and A and C、C and B and A 会走索引