MySQL não usa índice ao marcar = 1, mas usa-o com = 0
Aqui está uma questão desconcertante que estou tendo:
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
Alguma ideia? Isso está me deixando louco .. Se eu apenas tentar selecionar uma única coluna como esta:
EXPLAIN SELECT id FROM queue_servers WHERE live=1
Funciona muito bem .. Mas se eu tentar selecionar a coluna "nome do host" ou adicioná-la à lista de colunas selecionadas, ele não usará o índice ao vivo, a menos que eu esteja procurando ao vivo = 0 .. Por que isso?