У меня есть users
, который может принадлежать groups
во многих отношениях.Я пытаюсь получить ( paginate ) пользователей со всеми группами, к которым они принадлежат.Это прекрасно работает, но когда у меня более 1000 пользователей, все становится очень медленно, хотя я делаю только 25-50 страниц за раз.На моей модели User:
public function groups()
{
return $this->belongsToMany('App\Models\UserGroup', 'group_user', 'user_id', 'group_id');
}
Мой запрос:
User::with('groups')->paginate(50);
Так что, если в базе данных (MySQL) всего около 50 пользователей, все очень быстро (<= 300 мс).Но когда я добавляю 1000, хотя я все еще делаю постраничную передачу до 50 на страницу, она сканирует (~ 3 секунды). </p>
РЕДАКТИРОВАТЬ
На самом деле обычный запрос с примерно 50 ВСЕМИ пользователями~ 100 мс, а не 300 мс.