【672、一条 sql 语句判断索引是否生效】

87 阅读1分钟

假设有一个名为 users 的表,其中包含 idnameage 三个字段。现在需要查询年龄大于 18 岁的用户姓名。下面是一条简单的 SQL 语句:

SELECT name FROM users WHERE age > 18;

为了判断这条 SQL 语句是否使用了索引,可以使用 EXPLAIN 命令。该命令可以分析 SQL 语句的执行计划,并给出一个结果集的描述。下面是示例 SQL 语句和执行结果:

EXPLAIN SELECT name FROM users WHERE age > 18;

执行结果可能会类似如下:

id  select_type table  partitions type  possible_keys key  key_len ref  rows  Extra
1   SIMPLE      users  NULL       ALL   NULL         NULL NULL    NULL 10000 Using where

上述结果中,type 列表示查询的类型,如果值为 ALL,则表示该查询没有使用索引,否则表示使用了索引。在上述结果中,type 的值为 ALL,说明该查询没有使用索引。

如果想要让该查询使用索引,可以在 age 字段上添加一个索引,例如:

CREATE INDEX age_index ON users(age);

添加完索引后,再次执行上述 EXPLAIN 命令,结果可能会类似如下:

id  select_type table  partitions type  possible_keys key        key_len ref   rows Extra
1   SIMPLE      users  NULL       range age_index      age_index 5       NULL 5000 Using where; Using index

上述结果中,type 的值为 range,说明该查询使用了范围扫描,同时 Extra 列中出现了 Using index,说明该查询使用了索引。这样,就可以判断该索引是否生效。