Я хотел бы спросить, есть ли какое-либо преимущество в производительности 1 над другим.Использование 1 SQL для извлечения нескольких записей или нескольких SQL для получения отдельных записей
Вот пример:
// suppose I want to retrieve 10000 different records
select *
from table_a
where from in (1,2,3,4,5,6 .... 10000)
// alternatively
select *
from table_a
where from=1 or from=2 or from=3 ... from=10000
по сравнению с
select * from table_a where from=1
select * from table_a where from=2
select * from table_a where from=3
.
.
select * from table_a where from=10000
Каковы сценарии, что один будет превосходить другие?
Предложение WHERE
здесь упрощено, оно может иметь вложенные предложения AND и OR.
в том случае, когда вы показали, использование одного оператора sql должно иметь лучшую производительность. вы также можете упростить предложение where, начиная с <= 10000 (если возможно). – Shiping
@Shiping, yap мой пример упрощен, а как насчет тех, у кого есть несколько аргументов? Для простоты я использую непрерывное число. фактический sql имеет случайные числа, которые не являются смежными. – Mox
, вообще говоря, меньше доступа к IO, лучше производительность. конечно, всегда есть исключения. – Shiping