我有3个表,我运行一个带有连接的查询,每个表有三个“喜欢”的表 如果我在where条件中添加“和”,查询会变慢!
例如
select * from A inner join B ON (...) inner join C ON (...)
where (A.a LIKE '%...%' OR B.a LIKE '%...%' OR C.a LIKE '%...%')
结果为0.0021秒
select * from A inner join B ON (...) inner join C ON (...)
where A.type=2 AND (A.a LIKE '%...%' OR B.a LIKE '%...%' OR C.a LIKE %...%')
结果为0.0048秒
我预计“AND A.type = 2”会削减最多的记录然后LIKE(LIKE%...%更耗时而不是A.type = 2) 因此,在“条件”的情况下,“LIKE”的工作要少得多。
所以我预计第二个例子应该运行得更快但事实上更慢
为什么会这样?