mysql索引失效的场景

在 MySQL 中,索引是提高查询性能的关键工具,但在某些情况下,索引可能会失效,导致查询性能下降。以下是一些常见的索引失效的场景:

  1. 使用 OR 操作符
    如果查询中使用了 OR 操作符连接多个条件,且其中一个条件没有使用索引,或者索引无法有效使用,那么整个查询可能会导致索引失效。
    例如:
SELECT * FROM users WHERE age = 25 OR name = 'John';

如果 age 和 name 字段上都有索引,但 MySQL 可能无法有效利用索引来加速查询。
2. 使用函数或表达式
如果查询的字段在 WHERE 子句中进行函数操作或者表达式计算,索引可能会失效。
例如:

SELECT * FROM orders WHERE YEAR(order_date) = 2020;

由于 YEAR(order_date) 是一个函数操作,MySQL 不能使用 order_date 上的索引。
3. 使用 LIKE 操作符时,前导通配符(%)
如果 LIKE 查询中的模式以 % 开头,MySQL 无法使用索引来加速查询。
例如:

SELECT * FROM products 

你可能感兴趣的:(mysql,android,数据库)