Существуют ли практические ограничения для Eloquent ORM при активной загрузке? - PullRequest
0 голосов
/ 05 июня 2018

В разделе «Стремительная загрузка» https://laravel.com/docs/5.6/eloquent-relationships#eager-loading, руководство Laravel объясняет, что оно выполняет запрос WHERE... IN....

Существует ли практическое ограничение на количество аргументов для IN пункт?Например, если в предложении есть 100 значений, должен ли я начать поиск различных вариантов, таких как объединения таблиц?

Предположительно, в большинстве случаев производительность станет ограничивающим фактором, прежде чем я достигну жестких пределов своей РСУБД.

1 Ответ

0 голосов
/ 05 июня 2018

Я не думаю, что производительность будет проблемой, если у вас есть 10K + строк.Вы почти всегда запрашиваете первичный ключ таблицы (id), который должен иметь индекс и, следовательно, обеспечивать быстрый доступ.

Однако могут быть жесткие ограничения на количество параметров.SQL Server допускает только 2100 параметров, SQLite - только 999. Эти ограничения можно обойти с помощью этого пакета (самореклама).

В тех случаях, когда запрос WHERE IN становится слишком медленным,JOIN тоже не будет быстрее.
Если вы попытаетесь получить строки размером 10K +, создание объектов модели также займет значительное время.

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