0
Tối ưu hóa câu truy vẫn trong laravel
Mọi người cho em hỏi. Em đang có đoạn code như thế này. Nhưng theo cách code này thì phải sử lý khá nhiều câu query. Có cách nào tối ưu hóa hơn không ạ? Em cảm ơn.
2 CÂU TRẢ LỜI
+2
Đầu tiên thì bạn nên sử dụng Eager Loading. Chứ cứ mỗi lần foreach bạn lại query vài câu như này thì số query bị lặp lại sẽ rất nhiều. Và sau khi sử dụng Eager Loading thì hãy lấy dữ liệu qua relations, bạn đừng sử dụng cách query trực tiếp từ model
+3
public function getDevicesService(Request $request, $device)
{
$pageSize = _clamp($request->per_page, 20, 100) // clamp $pageSize, min: 20, max: 100 -> should add _clamp helper
$users = User::with('devices')->paginate($pageSize); // eager loading user devices
// Your logic
return $users;
}
Optimize code cho chủ thớt một tẹo trước. Cho mình hỏi TDevice
và cái $item_device
device có quan hệ như nào với nhau vậy?
Trong vòng for chủ thớt không query như kia sẽ dẫn tới n+1 query. Nên dùng eager loading giống cái devices
mình viết ở trên nhé.
Yêu cầu của bài toán này là gi và mối quan hệ giữa User và TDevice như thế nào hả bạn?
@caoquangtu Chủ thớt copy code lên đây cho ae đỡ phải gõ lại được không?