У меня есть запрос, который работает нормально, но он немного медленный.После небольшого исследования я обнаружил, что использование части моего запроса HAVING вызывает замедление.Есть ли способ сделать это БЕЗ использования части HAVING?
$query = sprintf("SELECT p.*,( 3959 * acos( cos( radians('%s') ) *
cos( radians( `loclat` ) ) * cos( radians( `loclong` ) - radians('%s') )
+ sin( radians('%s') ) * sin( radians( `loclat` ) ) ) ) AS distance
FROM postLocation as pl, posts as p
WHERE pl.pid = p.id %s %s %s
HAVING distance < '%s'
ORDER BY p.utc DESC, distance ASC LIMIT 0 , %s ",
$loclat,
$loclong,
$loclat, $status, $type, $start,
$radius, $limit);
У меня есть функция sprintf, которую можно использовать, пока я работаю над окончательной версией моего запроса. В настоящее время мне легче изменятьи т. д. Итак, я знаю, что наличие функции добавило бы время ... в первую очередь, сосредоточив внимание на самом запросе ... если есть что-то еще, СЛИШКОМ НЕПРАВИЛЬНО, я весь слух, но я верю, что часть HAVING является источником проблем.
Заранее спасибо!