在根据执行计划对SQL进行分析之后,逐步的去优化每个子查询的索引及成本使用情况,执行计划我的理解就是用来对索引进行逐步的优化的一个过程,让每个查询都尽量使用索引,在索引过程中,索引会经常性失效。
口诀
全值匹配我最爱,最左前缀要遵守 带头大哥不能死,中间兄弟不能断 索引列上少计算,范围之后全失效 LIKE符号写最右,覆盖索引不写星 不等空值还有or,索引失效要少用 var引号不能丢,SQL高级也不难 分组之前必排序,一定要上索引啊
索引容易失效的几个注意点
1、不在索引列上做任何的操作(计算、函数、类型转换),会导致索引失效而转向全表扫描 2、组合索引中,如果中间某个字段使用了范围条件,则右边的列索引失效 3、尽量使用覆盖索引(索引列和查询列一致),减少使用select * 4、mysql在使用不等于(!= 或者<>)的时候,无法使用索引列会导致全表扫描 5、is null ,is not null 也无法使用索引 6、like通配符必须放在索引列的右边,否则索引失效,编程全表扫描 7、字符串不加单引号索引失效 8、少用or,用它连接索引会失效