2012-03-15 47 views
1

我目前遇到了一个问题,当我在查询中使用“LIKE”时,我在2秒内得到结果。但是,当我使用'='时,结果显示需要大约1分钟。 以下是我的查询:'='的Mysql查询比'LIKE'慢得多

  • QUERY1

以下查询需要2秒时:

​​
  • 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需要寻找不同的可能性。但我确定为什么在我的情况下,“=”比较慢,有这么大的差别。

谢谢好心的帮助提前,

问候,

+3

这两个查询都是相同的。请编辑你的问题。 – iblue 2012-03-15 19:27:57

+0

可能是由于查询计划...有没有一个相当于更新统计数据的mysql? – 2012-03-15 19:30:21

+0

'table2.sourcefrom'上的索引? – cHao 2012-03-15 19:34:29

回答

1

当您使用= MySQL是可能使用不同的指标相比,当您使用LIKE来。检查两个执行计划的输出,看看有什么不同。然后你可以强制使用性能更好的索引。对于涉及的每个表格,值得运行ANALYZE TABLE