web-dev-qa-db-ja.com

MongoDBとPostgreSQL for GISのどちらを選択するのですか?

私はこのトピックに関するいくつかの情報を見つけようとしていますが、私が見つけているほとんどの記事は3年以上前のものです。私はこの点についてもかなり新しいので、誰に尋ねればよいかわかりません。

私の特定のユースケースでは、私はデータベースの専門家ではありませんが、以前に数回MongoDBを使用しました。小規模なプロジェクトでPostgreSQLを使用したのは1回だけです(GISに関することはありません)。その価値のために、私は現在、dynamoDBに格納した少量のデータを持っています。そのための地理ライブラリがありますが、Javaでのみ利用可能であり、Javaはよくわかりません。

私の使用例はかなり単純です。ユーザープロファイルデータに加えて、ユーザーが追加したマーカーをクエリできるようにしたいと考えています。認証されたユーザーの現在のlatLngなどからXマイル以内のマーカー。マーカーには、追加したユーザー、タイトル、説明など、latLng以外のデータが関連付けられています。

私の目標は、Web APIを使用して、現在の場所からXマイル以内のマーカーを使用して、最も近い場所から最も遠い場所に結果をクライアント側に返すことです。このため、MongoとPostgreSQLの間で、何を開始するのが良いでしょうか?

15
a person

PostgreSQLPostGis を使用して完全な(地理)空間機能を提供できますが、notが必要な場合がありますアプリケーションでそれだけです。

(lat、lng)ポイントの特定の半径内のユーザーをすばやく見つける必要がある場合は、 地球距離モジュールGistインデックス と一緒に使用できます。

詳細な説明については、 ジオロケーションプロセスでのクエリをスピードアップするにはどうすればよいですか を確認してください。

Postgresを使用した半径内の検索 も確認してください。


MongoDBでは、 geoNear 機能と 2dsphereインデックス を使用します


PostgreSQLのクエリは非常に高速で柔軟性があり、非常によく拡張されます。 MongoDBを使用する場合よりも、設定に少し多くの作業が必要です。

とにかく、基本的な機能は両方で利用可能であり、他のすべての要因を考慮することを決定する必要があります。

  • データは適切に構造化されており、この構造内にほとんど変動がありませんか? (SQL側の詳細)
  • ACID(原子性、一貫性、分離、耐久性)の保証が必要ですか? (SQL側の詳細)
  • 巨大な水平スケーリングが必要ですか? (MongoDB側の詳細)
  • 一度に複数のテーブルをクエリ(および結合)する必要がありますか? (SQL側)
  • 他のどの言語よりもJavaScriptとJSONに慣れていますか? (MongoDB +)
  • (など)

PostgresがMongoDBとアッシャーが新しい開発者の現実で優れている および システムプロパティの比較MongoDBとPostgreSQL も確認してください。

18
joanolo