Най-вероятното обяснение е тази колона nodo
е символен тип данни и character_set_connection
не съответства на набора от знаци, посочен за колоната.
Ако колоната е дефинирана с latin1
набор от символи, опитайте:
WHERE nodo = CONVERT(@sitio USING latin1)
Като демонстрация, с utf8, обясни изходът показва, че няма наличен индекс:
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
Но с latin1, обясни изходът показва, че индексът е наличен (и се използва):
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