В разделе «Активная загрузка», https://laravel.com/docs/5.6/eloquent-relationships#eager-loading, руководство по Laravel объясняет, что он выполняет запрос WHERE... IN....
Есть ли практическое ограничение на количество аргументов для пункта IN? Например, если у меня в предложении 100 значений, следует ли мне начать рассматривать различные варианты, такие как объединения таблиц?
Предположительно, в большинстве случаев производительность станет ограничивающим фактором, прежде чем я достигну жестких ограничений моей СУБД.






Я не думаю, что производительность будет проблемой, если у вас не будет более 10К строк. Вы почти всегда запрашиваете первичный ключ таблицы (id), который должен иметь индекс и тем самым обеспечивать быстрый доступ.
Однако жесткие ограничения на количество параметров могут стать проблемой. SQL Server допускает только 2100 параметров, SQLite только 999. Эти ограничения можно обойти с помощью этот пакет (самопродвижение).
В случаях, когда запрос WHERE IN становится слишком медленным, JOIN тоже не будет быстрее.
Если вы попытаетесь получить более 10 тыс. Строк, создание объектов модели также займет значительное время.