4
當我嘗試選擇加入與分頁查詢一些領域它顯示連接錯誤,如內存大小錯誤
Allowed memory size of 134217728 bytes exhausted (tried to allocate 45797376 bytes)
我的查詢是
$price_all = DB::table('model_price')
->join('operator_model','model_price.model_id','=','operator_model.id')
->join('operator_route','operator_model.operator_route_id','=','operator_route.id')
->join('route', 'operator_route.route_id', '=', 'route.id')
->join('operator', 'operator_route.operator_id', '=', 'operator.id')
->select('model_price.id', 'model_price.price', 'route.route_name', 'operator.operator_name')
->paginate(2);
在我的數據庫只有5記錄被存儲。它不是大數據。
當我嘗試沒有分頁,然後它工作正常。像
$price_all = DB::table('model_price')
->join('operator_model','model_price.model_id','=','operator_model.id')
->join('operator_route','operator_model.operator_route_id','=','operator_route.id')
->join('route', 'operator_route.route_id', '=', 'route.id')
->join('operator', 'operator_route.operator_id', '=', 'operator.id')
->select('model_price.id', 'model_price.price', 'route.route_name', 'operator.operator_name')
->get();
現在我該如何優化這個查詢。
您能否指定您在'paginate()'情況下使用的代碼來訪問視圖中的$ price_all變量? – matpop 2014-09-25 20:54:37
我會建議你安裝https://github.com/barryvdh/laravel-debugbar,然後檢查顯示的查詢日誌。您可以通過計算分隔數除以加入的計數來大大提高查詢的質量,因爲您沒有使用where。然後使用Paginator :: make see docs創建尋呼機 – David 2014-10-08 12:20:05