使用经纬度进行距离计算
问题原因
本人在使用自写sql对数据进行数据查询, 当查询条件使用经纬度处理距离长短并使用计算的距离进行分页排序的时候, 即使数据量为0, 界面查询速度也需要700~1000ms, 这就是异常问题,当我把实际的sql放入sql工具中直接查询的时候发现, 数据库中的运行速度需要几毫秒, 后来又使用断点验证的方式查看自己写入的代码, 发现当带经纬度查询的时候, 速度会变慢, 不带的时候, 40~100ms内查询无问题
处理经纬度的sql函数
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
纬度 * PI() / 180 - lat * PI() / 180
) / 2
),
2
) + COS(纬度 * PI() / 180