索引的排序是按照定义索引的顺序来的
索引的顺序要遵循三个规则
要遵循最左前缀 无论是多个还是一个列的索引 都不应该跳过最左列 如果在查询语句当中 没有使用最左前缀的字段 就不会使用索引
- index_key1_key2_key3 是我们的索引
即使使用select key_2 ,key_3 from table where 。。。
越过了最左前缀 是不会使用到索引index_key1_key2_key3的
不能跨越索引列
- index_key1_key2_key3 不能使用key1 key3字段 如果key2不在sql当中出现那么也不会使用到创建的索引 key1 key2出现可以使用索引
索引进行模糊查询 范围查询 ,右边的所有列都无法使用索引优化
- key1=’’ and key2 like ‘%j’ and key_3=’’
可以使用我们创建的index_key1_key2_key3索引 但那时key_3是不会被优化的