这是我遇到的一个令人困惑的问题:
Query:
EXPLAIN SELECT id,hostname FROM queue_servers WHERE live=1
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE queue_servers ALL live NULL NULL NULL 6 Using where
Query:
EXPLAIN SELECT id,hostname FROM queue_servers WHERE live=0
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE queue_servers ref live live 1 const 1
SHOW INDEXES FROM queue_servers
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type
queue_servers 1 live 1 live A 6 NULL NULL BTREE
有任何想法吗?这让我变得疯狂..如果我只是尝试选择这样一个列:
EXPLAIN SELECT id FROM queue_servers WHERE live=1
它工作正常..但如果我尝试选择列“hostname”,或将其添加到选择列列表,它将不会使用实时索引,除非我搜索live = 0 ..为什么这样?