数据库建立索引后没有反应

2025-03-25 20:35:41
推荐回答(1个)
回答1:

原因可能有很多.

1、可能你的查询条件里面, 没有 索引里面的列, 导致查询用不上索引。
例如你索引是 在 a 字段的,但是查询条件时 where b = ...

2、可能索引的创建方式,与查询的方式不一致。导致索引用不上。
(主要是 函数,以及 模糊的关系,会导致查询用不上)
例如索引是在 a 字段的, 但是查询是 TRIM ( a ) = ...
或者查询是 a LIKE '% ... %'

3、可能是你索引列 不同的数据很少,数据库分析索引以后,认为 索引 没有使用的意义。
例如你的表有 1千万行数据。 但是 a 列 上面, 只有 4种数值, 分别为
A, B, C, D 各 250万
你在 a 字段上面创建了索引
但是当你执行 where a= 'A' 的时候,
数据库分析你的查询语句得时候, 发现 索引里面的结果太多了。 没有使用的意义。
那么就不使用这个索引。

4、可能你的数据量,本身就不大,因此,有没有索引,对查询时间的影响,看不出来。
例如你的表,就 100行数据。
这种情况下, 用不用索引, 给用户来说,没啥感觉。

至于你的
问题补充:
貌似没有对表中的行进行操作。。红线话上的怎么是0。。

创建索引,并不修改你数据库表里面的数据。
索引是 自己独立的存储, 不修改表
就是当你查询的时候, 如果有索引可用
那么数据库 先去查索引, 然后再回来查询表