我目前在mysql数据库中的位置不到一百万个,都有经度和纬度信息.
我试图通过查询找到一个点和许多其他点之间的距离.它没有我想要的那么快,尤其是每秒100次点击.
是否有更快的查询或可能比mysql更快的系统?我正在使用此查询:
SELECT
name,
( 3959 * acos( cos( radians(42.290763) ) * cos( radians( locations.lat ) )
* cos( radians(locations.lng) - radians(-71.35368)) + sin(radians(42.290763))
* sin( radians(locations.lat)))) AS distance
FROM locations
WHERE active = 1
HAVING distance < 10
ORDER BY distance;
Run Code Online (Sandbox Code Playgroud)
注意:提供的距离以英里为单位.如果您需要公里数,请使用6371而不是3959.
我正在尝试使用中心和半径的坐标在MySQL中创建圆几何.我到处搜索...我在网站上的MySQL文档中找到的所有内容都是多边形的.可能是我在找错了地方.任何人都可以帮助我使用适当的SQL来帮助我创建一个表,该表将这个Circle几何存储为表中的一列吗?另外,我甚至不确定在MySQL中是否有办法这样做?我正在使用的版本是 MySQL 5.6.
提前致谢.