当有多个字段建立索引的时候,要遵循最左前缀原则,即:索引为 b c d ,要使用 c 索引就必须 要有 b字段,或者要使用 d 索引,就必须要有 b 字段的条件,看情况又是也需要 c 字段的条件
覆盖索引 : 当已经建立了 b 字段的索引之后,恰好 select b 而不是查询所有或者其他的字段,不用再回表查找数据,就直接在索引中得到需要的数据,
order by 导致索引失效 :
此时查询的是 所有数据,需要回表
数据量少的时候在内存中排序是比较快的,甚至可以忽略,这时候全面扫描是不需要回表的,所以会更快
这时 就会 order by 导致索引失效
此时查询的是 b 字段
走索引会更快,所以就不会导致 索引失效
MySQL数据类型转换 注意点:数字的字符会转换成 自身的数字,但是非数字的字符 比如 “b“ 全部都会转换成 0
当对字段进行操作 ,比如 a+1 和 a-1 的操作后,就不能使用索引
当查询条件是字符的时候也不能使用索引