Laravel медленный простой запрос с Eloquent - PullRequest
1 голос
/ 04 марта 2020

У меня проблема с запросом с laravel, у меня есть база данных с 250k записями, которая называется orders

Когда я пытаюсь получить разбитые на страницы заказы по client_id, я получаю 504 тайм-аута.

Запрос очень прост.

$ordenes = Order::where('client_id', $id)->orderBy('id', 'desc')->paginate(20);

Моим временным решением было увеличение с 1 ГБ ОЗУ до 2 ГБ и с 1 ЦП до 2 ЦП. Но я хочу знать, возможно ли оптимизировать этот простой запрос, чтобы получить более быстрый ответ.

Ответы [ 2 ]

1 голос
/ 08 марта 2020

Убедитесь, что у вас нет другой связанной таблицы, eloquent немного медленнее, чем построитель запросов, но не намного.

0 голосов
/ 04 марта 2020

по моему маленькому опыту, вы должны индексировать client_id и ID. Затем рассмотрите возможность использования таблиц данных с загрузкой на стороне сервера, это резко повысит производительность и добавит функции поиска. Наконец, используйте построитель запросов. Eloquent действительно, очень тяжел в вашем случае.

Не могу ответить на POST, поскольку я добавляю комментарий Фабиотка.

Надеюсь, это помогло.

...