La explicación más probable es que la columna nodo
es el tipo de datos del carácter y character_set_connection
no coincide con el conjunto de caracteres especificado para la columna.
Si la columna se define con latin1
juego de caracteres, intente:
WHERE nodo = CONVERT(@sitio USING latin1)
Como demostración, con utf8, la salida de explicación no muestra ningún índice disponible:
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
Pero con latin1, la salida de explicación muestra que el índice está disponible (y se usa):
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