В настоящее время я сталкиваюсь с проблемой, когда, когда я использую «LIKE» в моем запросе, я получаю результат за 2 секунды. Но когда я использую вместо этого '=', для получения результата требуется около 1 минуты. Ниже мой запрос:Запрос Mysql с '=' намного медленнее, чем «LIKE»
- QUERY1
Следующий запрос занимает 2 секунды:
`select distinct p.Name from Timeset s
join table1 f on (f.id = s.id)
join table2 p on (p.source=f.table_name)
join table3 d on (d.Name = p.Name) WHERE
s.Active = 'Y' AND **p.sourcefrom like '%sometable%'`
- QUERY2
Тот же самый запрос замены «, как 'by' = 'занимает 1 минуту:
select distinct p.Name from Timeset s
join table1 f on (f.id = s.id)
join table2 p on (p.source=f.table_name)
join table3 d on (d.Name = p.Name) WHERE
s.Active = 'Y' AND **p.sourcefrom = 'sometable'
Я очень озадачен, потому что я знаю, что «LIKE», как правило, медленнее (чем «=»), так как MySQL нужно искать другие возможности. Но я уверен, почему в моем случае «=» медленнее с такой существенной разницей.
спасибо любезно за помощь заранее,
С уважением,
Оба вопроса идентичны. Пожалуйста, отредактируйте свой вопрос. – iblue
возможно из-за плана запроса ... есть ли эквивалент mysql для обновления статистики? –
Индекс на 'table2.sourcefrom'? – cHao