【发布时间】:2024-01-07 05:10:01
【问题描述】:
我有一个带有索引空间数据的 MySQL 表,如下所示:
CREATE TABLE `mytable` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`TIME` datetime DEFAULT NULL,
`SPOT` point NOT NULL,
PRIMARY KEY (`ID`),
SPATIAL KEY `SPOT` (`SPOT`)
) ENGINE=MyISAM AUTO_INCREMENT=6473924464345089 DEFAULT CHARSET=utf8;
行插入如下:
INSERT INTO mytable (time, spot) VALUES (now(), (GeomFromText('POINT(110.0 120.0)', 4326)));
我正在查询给定 latlong 的最近地点
SELECT id, x(spot) as longitude, y(spot) as latitude
FROM mytable
ORDER BY st_distance(GeomFromText('POINT(10.0 12.0)', 4326), spot) LIMIT 5;
但它正在执行全表扫描,尽管 'spot' 已编入索引。
如果能帮助我优化它,我将不胜感激!
【问题讨论】:
标签: mysql distance spatial-query spatial-index