使用LIKE' %%'的Mysql性能

时间:2016-06-13 13:31:35

标签: mysql

对于给定的查询,

select * from contacts where name like "%$name%"

当变量$name为空时,mysql是否优化查询以排除条件?

当$ name为空字符串时,查询将作为

执行
select * from contacts

select * from contacts where name like "%%"

2 个答案:

答案 0 :(得分:1)

正如Alex K在评论中提到的,MySQL不会做任何事情来优化类似的查询。

如果行中有空值,查询将不会返回结果集中的那些行,这说明每行都有一个检查。 如建议的那样,最好检查一下代码,如果搜索值为空,则跳过like子句。

答案 1 :(得分:-1)

没有

在$ name为空的情况下,使用PHP条件完全跳过查询。