MySQL 索引失效-模糊查询,最左匹配原则,OR条件等。( 五 )

  • 在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效 。
  • 最后留一个很有意思的思考题给大家 。
    • 题目1:一个表有多个字段,其中 name 是索引字段,其他非索引,id 拥有自增主键索引 。
    • 题目2:一个表有2个字段,其中 name 是索引字段,id 拥有自增主键索引 。
    上面两张表,分别执行以下查询语句:
    • 1 select * from s where name like "xxx"
    • 2 select * from s where name like "xxx%"
    • 3 select * from s where name like "%xxx"
    • 4 select * from s where name like "%xxx%"
    针对题目 1 和题目 2 的数据表,哪些触发索引查询,哪些没有?
    针对题目1:1234全部走全索引
    针对题目2:12触发索引,34不会触发索引
    【MySQL 索引失效-模糊查询,最左匹配原则,OR条件等。】

    推荐阅读