Запрос с 2-мя leftjoin в базу с более 2-х тысяч записей, сжирает всю память/процессор и виснет в процессах Mysqld, что не так?
PHP Fatal error: Allowed memory size of xxxxxxxxx bytes exhausted (tried to allocate xxxxx bytes) in vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 336
Имею такой запрос:
$data = Model::where('table1.name', $name)
->leftJoin('table2', 'table1.phone', '=', 'table2.phone')
->leftjoin('table3', 'table1.phone', '=', 'table3.phone')
->select('table3.email', 'table3.param1', 'table3.param2', 'table3.param3', 'table2.city', 'table2.info', 'table2.info2', 'table2.info3', 'table1.name', 'table1.phone', 'table1.data', 'table1.data1', 'table1.data2', 'table1.data3', 'table1.data4 AS new', 'table1.created_at', 'table1.id')
->get();
return Datatables::of($data)
->addColumn('edit', '')
->editColumn('data', function (Model $model) {
$md = ($model->data == 0 ? 'yes' : $model->data);
return $md;
})
->editColumn('new', function (Model $model) {
$new = ($model->new ? 'yes' : 'no');
return $new;
})
->editColumn('data1', function (Model $model) {
$dt = ($model->data1 == 1 ? 'yes' : 'no');
return $dt;
})
->editColumn('created_at', function (Model $model) {
$date = date('Y-m-d H:i:s', strtotime($model->created_at) ); // H:i:s
return $date;
})
->rawColumns(['edit'])
->make(true);
Что я делаю не так? Ведь это еще не большое количество записей.