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