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 クエリを実行し、その後 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 に答える