select * from customers where id = 1;
select * from customers where id = 2;
或
select * from customers where id in(1,2);
哪个更快?
select * from customers where id = 1;
select * from customers where id = 2;
或
select * from customers where id in(1,2);
哪个更快?
第一个实际上是两条语句,导致您将两个往返传送到数据库。 第二个很可能会更快,因为它只是一个声明。
这真的是你想要确定的吗?你问是否一趟旅程返回两行还是两趟返回一行?如果那是问题,那么我同意评论 - 尝试,评估并比较。
如果你试图让这种事情有效,那么你应该看看使用绑定变量。如果你的问题真的意味着它说的话,那么这里可能会有任何答案。
“更快”的任何问题总是取决于数据库的细节。我真的没有什么可以补充plhmhck和MJB关于你正在谈论2个查询与1个查询的事实。
但要注意的优化通常会(总是?)重写WHERE id IN (1,2)
到WHERE (id = 1 OR id = 2)
试试吧。看看解释计划。 – Mat 2012-01-15 20:04:55
取决于您的索引 – Avitus 2012-01-15 20:05:22
第一个返回两个集合,每个集合包含一行。第二个返回一个包含2行的集合。他们没有给出相同的结果,因此比较他们是没有意义的。需要更多的上下文来解决一个有意义的问题。 – 2012-01-15 20:15:00