【发布时间】:2020-02-14 04:13:13
【问题描述】:
目前,我有这个查询
SELECT "Id"
FROM "Point"
WHERE ST_Distance(ST_SetSRID(ST_Point("Longitude", "Latitude"), 4326)::geography,
ST_SetSRID(ST_Point(@longitudeOfA, @latitudeOfA), 4326)::geography) <= @MaxDistance
LIMIT 1
如您所见,我没有将空间数据保存在点表中,而是在查询选择语句 (ST_Point) 中使用纬度和经度列创建它。
这个查询的目的是检查半径@MaxDistance是否至少有一个点。
恐怕在执行此选择查询时,我会在每条记录上创建 ST_Point。
至少知道记录不多,所以性能就足够了,但是因为每条记录都创建ST_Pin,所以当Point记录很多时恐怕会变得非常昂贵。
由于某些限制,我无法在点表上创建空间数据。
【问题讨论】:
标签: sql postgresql postgis spatial