这不应该使用索引而不是在哪里?

时间:2010-11-10 00:46:27

标签: mysql query-optimization

EXPLAIN EXTENDED SELECT  `member`.`id` ,  `member`.`name` 
FROM  `member` 
WHERE  `member`.`last_active` >  '1289348406'

尽管last_active有一个索引,但显示以下输出....不应该说index而不是where吗?

id  select_type table   type    possible_keys   key key_len ref rows    filtered    Extra
1   SIMPLE  member  range   last_active last_active 4   NULL    2   100.00  Using where

1 个答案:

答案 0 :(得分:1)

Using index表示查询根本不触及表格:

  

Using index

     

仅使用索引树中的信息从表中检索列信息,而无需执行额外的搜索来读取实际行。当查询仅使用属于单个索引的列时,可以使用此策略。

由于索引并未涵盖所有字段,因此无法实现。

当然正在使用索引本身(因为访问类型为range),但它仍然需要在表中执行行查找以检索name和{{1的值}}

如果您想查看id,请在(last_active, name, id)上创建覆盖索引。