Допустим, 1/3 посетителей будут смотреть все 1000 идентификаторов, в то время как 2/3 из них будут смотреть только первые 50.
Поскольку вы хотите оптимизироватьВаш ответ, поскольку вы предполагали, как посетители будут относиться к нему.
Что было бы лучше для производительности / рабочей нагрузки, один запрос для всех 1000 идентификаторов или разделить их на 20 запросов по 50 идентификаторов каждый?Поэтому, когда первые 50 просмотрены, запросите следующие 50 и т. Д.
Да, вы правы, вам следует ограничить ответ.Это один из примеров того, как вы можете реализовать свое требование (я не знаю много mysql, но именно так вы можете получить желаемый результат).
SELECT * FROM `table` WHERE `id` IN (23221, 42422, 2342342....)
order by `id`
LIMIT 10 OFFSET 10
, если это было SQL SERVER
:
create stored proc sp_SomeName
@id varchar(8000)
@skip int,
@take int
as
begin
SELECT * FROM some_table WHERE id IN (23221, 42422, 2342342....)
order by id
OFFSET @skip ROWS --if 0 then start selecting from 0
FETCH NEXT @take ROWS ONLY --if 10 then this is the max returning limit
end
то, что сделает вышеупомянутый запрос: получит все данные опубликованных идентификаторов, затем упорядочит по идентификатору в порядке возрастания.Затем из их числа он выберет только первое 10/50/100, в следующий раз выберет следующее 10/50/100 или что бы вы ни выбрали и пропустите выбор.Надеюсь, это поможет мужчине:)