2

我有 5 张桌子:

- users - information about user with current location_id (fk to geo_location_data)
- geo_location_data - information about location, with PostGIS geography(POINT, 4326) column
- user_friends - relationships between users.

我想为当前用户找到附近的朋友,但是执行选择查询需要花费大量时间才能知道用户是否是朋友,然后执行 select using ST_DWithin。域模型或查询中可能有问题?

4

2 回答 2

1

第一步是索引几何列。像这样的东西:

  CREATE INDEX geo_location_data_the_geom_idx ON geo_location_data USING GIST (the_geom);
于 2010-05-03T04:30:25.937 回答
0

尝试在您的点和相交运算符上使用缓冲区。

SELECT ... FROM A, B WHERE Intersects(B.the_geom, ST_Buffer(A,1000))

它应该更快。

于 2012-03-13T14:21:36.133 回答