使用具有一个条件的WHERE子句或一个具有100个条件的WHERE子句的查询运行100个SQL查询是否更好?

Mat*_*tty 4 php mysql sql performance

使用具有一个条件的WHERE子句或一个具有100个条件的WHERE子句的查询运行100个SQL查询是否更好?例如,如果我想查看表中是否已存在100个用户名,那么迭代100个查询或执行一次查找100个用户名的复杂查询会更好吗?

Fru*_*ner 11

我没有做任何测试,但我更喜欢一个大的查询.使用100个查询,您必须连接到数据库,发送查询字符串,并处理响应/结果100次.使用一个查询,您可以发送一个(更大的)查询,并获得一个响应.我不知道100个上下文切换的确切成本,但它可能并不是无关紧要的.无论如何,使用一个大型查询,数据库可能必须执行相同数量的工作.如果您所检查的是1个用户名与100个用户名,那么这不是一个非常复杂的查询

select *
from users
where username in ('value1',...,'value100');
Run Code Online (Sandbox Code Playgroud)

  • 请记住避免SQL注入 (2认同)