互联网面试宝典

您现在的位置是: 首页 > MySQL

问题详情

你知道什么情况下 MySQL 不走索引吗?

面试宝典 2023-06-12 Web前端开发工程师 62
以下是 MySQL 不走索引的情况:

1. 当查询条件使用了函数:在查询条件中使用函数,MySQL 无法使用索引进行优化。

2. 当查询条件是范围查询:如果查询条件是对索引列进行了范围查询(例如:>、<、>=、<=、BETWEEN 和 IN),则 MySQL 只能使用索引的一部分。

3. 当查询条件使用了 NOT:如果查询条件是 NOT IN 或 NOT EXISTS 这类条件,MySQL 将不会使用索引优化,因为这种查询需要对整张表进行扫描。

4. 当查询条件使用了 LIKE:如果查询条件中使用了 LIKE%,则 MySQL 可能不会使用索引优化。因为索引通常是按照升序存储的,LIKE% 查询需要扫描整个索引。

5. 数据量过大:如果表中数据量太大,索引查询就会变得很慢,因为需要从磁盘读取大量数据。

6. 当表使用了不合适的数据类型:如果表中的列使用了不合适的数据类型,就可能无法使用索引优化查询。例如,在字符串列上进行数值比较时,MySQL 可能无法使用索引。

7. 当 MySQL 估计使用全表扫描比使用索引更快:如果 MySQL 认为使用全表扫描比使用索引更快,则它将不会使用索引。