请记住,我将在lat/long对上执行计算,哪种数据类型最适合与MySQL数据库一起使用?
我试图从我的桌子获得100分,距离给定点的距离最小.
我正在使用
SELECT *, GLENGTH(
LINESTRINGFROMWKB(
LINESTRING(
ASBINARY(
POINTFROMTEXT("POINT(40.4495 -79.988)")
),
ASBINARY(pt)
)
)
)
AS `distance` FROM `ip_group_city` ORDER BY distance LIMIT 100
Run Code Online (Sandbox Code Playgroud)
(是的,这很痛苦.我只是用Google搜索它.我不知道如何正确测量MySQL中的距离)
执行需要很长时间.EXPLAIN说没有possible_keys.
我在列SPATIAL上创建了一个索引pt:
CREATE SPATIAL INDEX sp_index ON ip_group_city (pt);
Run Code Online (Sandbox Code Playgroud)
虽然我真的不知道如何正确使用它.你能帮我么?