特定のポイントまでの距離が最も短いテーブルから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
(ええ、それは苦痛です。私はそれをグーグルで検索しました。MySQLで距離を正しく測定する方法がわかりません)
実行には非常に長い時間がかかります。EXPLAIN
はないと言いpossible_keys
ます。
列にSPATIAL
インデックスを作成しました。pt
CREATE SPATIAL INDEX sp_index ON ip_group_city (pt);
正しく使う方法はよくわかりませんが。手伝ってくれませんか?