【发布时间】:2017-05-15 11:10:32
【问题描述】:
我有一个带有 JOIN 的简单 sql 查询,如果点在多面体中,则连接:
SELECT `oktmo_geometry`.`oktmo` FROM `place`
INNER JOIN `oktmo_geometry` ON ST_CONTAINS(`oktmo_geometry`.`geometry`, Point(`place`.lng, `place`.lat))
但是那个查询很慢。我有 12k 个位置和 300 个几何图形。仅 50 个位置需要 3-5 秒(取决于 MySQL 版本)。我曾尝试使用 MariaDB,这比 MySQL 快了约 50 倍,但我认为仍然很慢。
也许我的查询有问题或其他什么问题?
oktmo_geometry.geometry 是多边形类型。
【问题讨论】:
-
你在使用
SPATIAL索引吗?与哪个ENGINE,MyISAM?还是 InnoDB? -
如果有人想知道,SPATIAL 索引解决了这个问题。