【发布时间】:2017-12-17 23:52:21
【问题描述】:
我有以下查询来检查点 (T.latitude, T.longitude) 是否在 POLYGON 内
query = """
SELECT id
FROM T
WHERE ST_Intersects(ST_Point(T.latitude, T.longitude), 'POLYGON(({points}))')
"""
但是它运行缓慢,如果我有以下索引,我该如何加快它:
(latitude, longitude)?
查询很慢,因为它必须为每对可能的点计算公式。所以它让 postgress 服务器做很多数学运算,并强制它扫描你的整个位置表。我们该如何优化呢?也许我们可以消除太北或太南或太东或西太远的点?
【问题讨论】:
标签: database algorithm postgresql performance postgis