2011-02-01 2 views
3

Я бег простой левое соединения запроса между относительно небольших столиков (~ 5000 строк):индекса силы MySQL не работает

select * 
from table1 
left join table2 
force index (index_table2_on_name) for join 
on table1.name = table2.name 

index_table2_on_name существует, но Mysql отказывается использовать его. Выполнение пояснения по запросу возвращает: select_type = SIMPLE, type = ALL и possible_keys = NULL для обеих таблиц.

Есть идеи?

+1

, заставляющий использовать индекс, как правило, плохая идея ... Чаще всего он вернется, чтобы укусить вас ... –

ответ

6

Обнаружили проблему. Похоже, что имя table1.name и table2.name имеют разные наборы символов. Странно, что Mysql игнорирует индекс вместо использования преобразования.

+0

Не совсем - он делает то же самое с разными типами – symcbean

+0

большое вам спасибо :) – fred727

Смежные вопросы