Lagvel paginate очень медленный - PullRequest
       34

Lagvel paginate очень медленный

0 голосов
/ 08 февраля 2019

У меня есть проблема с разбиением на страницы, это так медленно в больших данных больше чем 25K строк. Я пытаюсь сохранить продукты, сохраненные пользователем в базе данных, используя:

$products = Item::has('product_save');

, и я добавляю то же условие ...

$products = $products->where('active', 0);

Я использую эту строку для разбивки на страницы:

$products = $products->paginate(20);

весь запрос занимает 0,06865 секунды.но так медленно, более 4,9 секунд!как я могу сделать это очень быстро?

1 Ответ

0 голосов
/ 09 февраля 2019

Вы спросили 'как я могу сделать это SELECT p. * ИЗ продуктов как p, product_saves как s, где s.user_id = 4 и p.id = s.product_id' в комментариях.Ответ опубликован ниже:

Item::with('product_saves')->whereHas('product_saves', function($q){ 
    $q->where('user_id', 4)
});

and p.id = s.product_id должен быть определен как отношение product_saves, если нет, то для этого необходимо создать пользовательские отношения.Это будет стремиться загрузить запрос и ограничить ваш элемент только элементами, имеющими отношение product_saves, а также гарантировать, что отношение product_saves имеет user_id 4.

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