Laravel Datatable skipTotalRecords() не работает. Все еще выборка строки подсчета

#php #laravel #datatables #yajra-datatable

#php #laravel #таблицы данных #yajra-datatable

Вопрос:

Я использую Laravel и Laravel DataTable ^ версии 8.0. Добавление skipTotalRecords() с данными в DataTable eloquent builder не работает. Запрос Count все еще выдает результаты. Здесь прилагаются мои скриншоты

Из заводной панели отладки

ВЫБЕРИТЕ count(*) в качестве агрегата ИЗ (ВЫБЕРИТЕ id , row_no , customer_id , income , posting_date , (ВЫБЕРИТЕ posting_date ИЗ final_invoice WHERE job_id = job . id и final_invoice . deleted_at РАВНО НУЛЮ и final_invoice . company_id = ‘1’ ПОРЯДОК ПО id ДЕСКРИПТОРУ LIMIT 1) как invoice_date , (ВЫБЕРИТЕ SUM(local_amount) в качестве дохода ИЗ finance WHERE account = ‘7035500’ и job_no = job . row_no и finance . deleted_at РАВНО НУЛЮи finance . company_id = ‘1’ ОГРАНИЧЕНИЕ 1) начиная posted_income С job WHERE income > ‘0’ и posting_date между ‘2021-03-01’ и ‘2021-03-29’ и job . deleted_at РАВНО НУЛЮ и job . company_id = ‘1’) count_row_table

ВЫБЕРИТЕ id , row_no , customer_id , income , posting_date , (ВЫБЕРИТЕ posting_date ИЗ final_invoice WHERE job_id = job . id и final_invoice . deleted_at РАВНО НУЛЮ и final_invoice . company_id = ‘1’ ПОРЯДОК ПО id ДЕСКРИПТОРУ LIMIT 1) как invoice_date , (ВЫБЕРИТЕ SUM(local_amount) в качестве дохода ИЗ finance WHERE account = ‘7035500’ и job_no = job . row_no и finance . deleted_at РАВНО НУЛЮ и finance . company_id = ‘1’ LIMIT 1)начиная posted_income С job WHERE income > ‘0’ и posting_date между ‘2021-03-01’ и ‘2021-03-29’ и job . deleted_at РАВНО НУЛЮ и job . company_id = ‘1’ ПОРЯДОК ПО id ПРЕДЕЛУ DESC 25 смещение 0

Код

 ->skipTotalRecords()
->toJson();
 

Composer JSON

 "itsgoingd/clockwork": "^4.0",
"laravel/cashier": "^12.1",
"laravel/framework": "^8.0",
"yajra/laravel-datatables-oracle": "^9.0",
 

Пожалуйста, помогите мне, почему запрос count все еще выполняется. Заранее спасибо.

Комментарии:

1. Слишком много вложенных запросов. Вы должны понимать, что для каждой записи во внешней таблице выполняется внутренний запрос. Учитывая, что вы выбираете значения из запроса для каждой строки во внешнем запросе, производительность ухудшается, если таблицы огромны. Я бы посоветовал вам вместо этого использовать объединения.