EXPLAIN 选择查询

select 查询前面的 Explain 显示了查询将如何执行。这样,你可以查看查询是使用索引还是通过添加索引来优化查询。

示例查询:

explain select * from user join data on user.test = data.fk_user;

示例结果:

id  select_type  table   type    possible_keys  key     key_len ref       rows  Extra
1   SIMPLE       user    index   test           test    5       (null)    1     Using where; Using index
1   SIMPLE       data    ref     fk_user        fk_user 5       user.test 1     (null)

type 上,你会看到是否使用了索引。在 possible_keys 列中,你可以看到执行计划是否可以从不存在的索引中进行选择。key 告诉你实际使用的索引。key_len 显示一个索引项的大小(以字节为单位)。该值越低,索引项就越适合相同的内存大小,就可以更快地处理它们。rows 显示了查询需要扫描的预期行数,越低越好。