La spiegazione più probabile è quella colonna nodo
è il tipo di dati del carattere e character_set_connection
non corrisponde al set di caratteri specificato per la colonna.
Se la colonna è definita con latin1
set di caratteri, prova:
WHERE nodo = CONVERT(@sitio USING latin1)
A titolo dimostrativo, con utf8, l'output di spiegazione non mostra alcun indice disponibile:
EXPLAIN SELECT t.* FROM mytable t WHERE t.foo = CONVERT(@foo USING utf8)
^^^^
id select_type table type possible_keys key key_len ref rows Extra
-- ----------- ----- ---- ------------- ------ ------- ------ ---- -----------
1 SIMPLE t ALL (NULL) (NULL) (NULL) (NULL) 3 Using where
Ma con latin1, spiega che l'output mostra che l'indice è disponibile (e viene utilizzato):
EXPLAIN SELECT t.* FROM mytable t WHERE t.foo = CONVERT(@foo USING latin1)
^^^^^^
id select_type table type possible_keys key key_len ref rows Extra
-- ----------- ----- ---- ------------- ------ ------- ------ ---- -----------
1 SIMPLE t ref t_ix t_ix 13 const 1 Using where