Code Bye

这样一条sql要怎么优化呢

这样一个sql要怎么优化呢?
select t.loginName,t.distanceStr,t.sex from (select (st_distance(point(r.lon,r.lat), point(108.979118,34.166634)) * 111195 )
as distanceStr ,r.loginName,
r.sex from ycd_sys_user r where r.id != “55ef37a3dcd3423ab7f1cb8e5de3de1f” )
t  where  t.distanceStr <=50000
order by t.distanceStr asc limit 20
解决方案

20

不要查你周围的圆形,就查你为中心的长方形,一下就简单了。
一般来说,你的显示的位置是长方形区域,即便是显示圆形区域,客户端再处理一下就是了

20

引用:

不要查你周围的圆形,就查你为中心的长方形,一下就简单了。
一般来说,你的显示的位置是长方形区域,即便是显示圆形区域,客户端再处理一下就是了

对的
dim D=1.414*distance;
where  (center.x-p.x<=D and p.x-center.x<=D and center.y-p.y<=D and p.y-center.y<=D)


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这样一条sql要怎么优化呢