какой самый быстрый для оракула? - PullRequest
0 голосов
/ 16 января 2012

Это

select * from customers where id = 1;
select * from customers where id = 2;

или

select * from customers where id in(1,2);

что быстрее?

Ответы [ 3 ]

5 голосов
/ 16 января 2012

Первый из них - это два оператора, которые заставляют вас совершить два обращения к базе данных.Второе, скорее всего, будет быстрее, поскольку это всего лишь одно утверждение.

0 голосов
/ 16 января 2012

Любой вопрос с «быстрее» всегда будет зависеть от специфики вашей базы данных.На самом деле мне нечего добавить к plhmhck и MJB о том, что вы говорите о 2 запросах против 1 запроса.

Но учтите, что оптимизатор обычно (всегда?) Переписывает WHERE id IN (1,2) до WHERE (id = 1 OR id = 2)

0 голосов
/ 16 января 2012

Это действительно то, что вы пытаетесь определить?Вы спрашиваете, быстрее ли совершить одну поездку, возвращая две строки или две, каждая возвращая одну строку?Если это вопрос, то я согласен с комментариями - попробуйте, измерите и сравните.

Если вы пытаетесь сделать подобные вещи эффективными, то вам, вероятно, стоит взглянуть на использование переменных связывания.вместо.Если ваш вопрос действительно означает, что он говорит, то, вероятно, подойдет любой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...