web-dev-qa-db-ja.com

NodejsアプリでのMongodbとPostgres

私はnodejsアプリケーションを構築していますが、nosql mongodbとrmds PostregresSqlの間で完全に破れています。私のプロジェクトは、nodejsを使用してWebページに訪問者を記録し、訪問者の統計をリアルタイムで表示するためのオープンソースのサンプルプロジェクトを作成することです。私は最初、mongodbを使用することを計画していました。なぜなら、多くのnodejsの例とチュートリアル(ほとんどが古いもの)が使用しており、無料のテアを持つpaasホスティング業者がたくさんあるからです。しかし、最近、mongodbで多くのバッシングが発生しており、mongodbを使用しようとした人が最終的にpostgresに切り替えることに気付きました。 http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodbhttp://dieswaytoofast.blogspot.com/2012/09/mysql- vs-postgres-vs-mongodb.htmlhttp://www.plotprojects.com/why-we-use-postgresql-and-slick/ 私もherokuのファンであり、聞いたことがあるそのため、postgressについて多くのことを学び、SQLクエリがときどきナイスになることがあります。

私はデータベースの専門家ではありませんので、どの道を行くべきか私には一生わかりません。検討すべきものとその理由についてアドバイスをいただければ、本当に助かります。

いくつかの基準があります:

  1. これを例にしたいので、適切なサイズのデータ​​をホストする方法があるといいでしょう。 mongodbはこれに反抗的に提供することを知っていますが、herokuのようなpostgres paasはかなり小さなデータベースを持っているようです(私はすべての訪問者をウェブサイトに記録しているため)

  2. 単純化され、他の人に説明しやすいデータベース。

  3. パフォーマンスは重要ではありませんが、速度は低下しません

助けてくれてありがとう!

:火炎戦争はありません、誰もが自分の意見を持っています:)

35
joshua-anderson

SQLデータベースとNoSQLデータベースのどちらを選択するかは、今まさに議論されており、このテーマに関する多くの優れた記事があります。最後にカップルをリストします。特定のニーズに合わせてNOSQLよりもSQLを推奨することに問題はありません。

NoSQLには、リレーショナルモデルではなく、ドキュメントと呼ばれる大規模な密結合パッケージにデータが保存されるニッチグループのユースケースがあります。簡単に言えば、単一のエンティティに緊密に結合されたデータ(単一のユーザーが使用するすべてのテキストドキュメントなど)は、NoSQLドキュメントモデルに保存する方が適切です。 Excelスプレッドシートのように動作し、行にうまく収まり、集計計算の対象となるデータは、postgresqlがいくつかの適切な選択肢の1つに過ぎないSQLデータベースに保存する方が適切です。

考えられる3番目のオプションはredis( http://redis.io/ )です。これは、SQLのようなクエリでは非常に高速ですが、厳密に型指定されていない単純なキー値データストアです。

あなたが引用する例は、単純な行/列タイプの問題のようです。 SQL構文は、MongoDBのクエリ構文よりも難解であることがわかります。 Node推奨事項が多くあり、ツールセットは過去1年間で大幅に成熟しています。ボイラープレートコードの量を減らすため、 monogoose npmパッケージを使用することをお勧めしますこれはネイティブmongodbで必要であり、パフォーマンスの低下に気付いていません。

http://slashdot.org/topic/bi/sql-vs-nosql-which-is-better/

http://www.infoivy.com/2013/07/nosql-database-comparison-chart-only.html

22