Почему Datatables очень медленно работает с Laravel? - PullRequest
0 голосов
/ 06 июля 2019

У меня есть проект с laravel, в котором он использовал "yajra / laravel-datatables", проблема в том, что он очень медленный, когда дело касается извлечения данных с сервера.

Этот проект имеет в общей сложностииз 11 000 записей, и я разбил его на Datatables 10 на 10. Чтобы получить первые 10, требуется более 3 секунд.

error

У нас есть еще одинпроект, который был выполнен изначально с PHP и Datatables, и насчитывает около 50 000 записей, и он работает мгновенно, принося первые 10 записей плюс ту же вычислительную мощность (это занимает 100 миллисекунд).

Моя инфраструктуранаходится в Amazon Web Services.

Из-за способа, которым мы доставляем данные в Datatables, я подозреваю, что он переносит все данные из базы данных и доставляет только 10 записей в интерфейс.Однако это займет больше времени, поскольку он получает все записи в базе данных.

$query = DB :: select( 'QUERY SQL' );
return DataTables :: of( $query ) -> toJson();

Выполнение запроса в рабочей среде занимает около 200 миллисекунд, чтобы вывести всю информацию.

1 Ответ

1 голос
/ 06 июля 2019

Я не слишком уверен, как создать целый экземпляр Builder из необработанного запроса, но вы определенно можете использовать подзапрос:

$builder = DB::query()->fromSub(
    DB::raw($theQueryString),
    'wrapped_query'
);

return datatable($builder)->toJson();

Это также имеет то преимущество, что обасортировка и поиск будут работать безупречно даже с объединенными таблицами.

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