首页 > 解决方案 > 如何优化 laravel 代码以加快 TTFB?

问题描述

我正在尝试优化以下代码以加快实际为 11 秒(太高)的 ttfb 时间。json 包含数千个地理坐标,用于在 Google 地图上打印折线。代码有问题还是我需要增加服务器资源?谢谢

public function getTrackingData($scheduleId)
{
$segmenti = DB::select(DB::raw("SELECT a.segmentid,b.colore FROM schedules_trackings a left join devices b on a.device_id=b.id where schedule_id = :scheduleId  group by a.segmentid,b.colore,b.sigla"), array(
  'scheduleId' => $scheduleId,
));
$resultArray = json_decode(json_encode($segmenti), true);

$tracking = array();
foreach ($resultArray as $seg) {
  $geodata = DB::select(DB::raw("SELECT a.latitude, a.longitude FROM schedules_trackings a left join devices b on a.device_id=b.id where schedule_id = :scheduleId and segmentId = :segmentId  order by a.created_at"), array(
    'scheduleId' => $scheduleId,
    'segmentId' => $seg['segmentid']
  ));

  $tracking[] = array(
    'segment' => $seg['segmentid'],
    'color' => $seg['colore'],
    'geodata' => $geodata
  );
}
return response()->json($tracking, 200);
}

标签: phpmysqllaravel

解决方案


推荐阅读