Оптимизировать Laravel LeftJoin с вычислением расстояния - PullRequest
0 голосов
/ 18 февраля 2019

Мой нижеприведенный код работает нормально, но для получения результатов требуется не менее 3 секунд. Можно сделать более быстрый запрос с такими же результатами без быстрой загрузки.

    $value =  User::whereIn('plan_id',['mprom03','mproy06'])
    ->leftJoin('locations as l', 'users.id', '=', 'l.user_id')
    ->leftJoin('abouts', 'users.id', '=', 'abouts.user_id')
    ->leftJoin('appearances', 'users.id', '=', 'appearances.user_id')
    ->leftJoin('sexes', 'users.id', '=', 'sexes.user_id')       
    ->select('users.*','appearances.age','appearances.weight','appearances.height','sexes.oral','sexes.size', DB::raw('ROUND(6371 * acos(cos(radians(' . $cordiante[0] . ')) * cos(radians(`latitude`)) * cos(radians(`longitude`) - radians(' . $cordiante[1] . ')) + sin(radians(' . $cordiante[0] . ')) * sin(radians(`latitude`)))) as distance'))

    ->orderByRaw('RAND()')->limit(20)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...