39

私は NodeJS アプリケーションを構築していますが、NoSQL MongoDB と RMDS PostregresSql の間で完全に引き裂かれています。私のプロジェクトは、訪問者をログに記録し、NodeJS を使用して Web ページに訪問者の統計をリアルタイムで表示するためのオープン ソースのサンプル プロジェクトを作成することです。最初は MongoDB を使用することを計画していました。NodeJS の例とチュートリアルの多くは、ほとんど古いものではありますが、MongoDB を使用しており、無料利用枠を持つ paas ホスティング業者が豊富にあるためです。しかし、最近、MongoDB に対するバッシングが多く見られ、MongoDB を使用しようとした人々が Postgres に切り替えてしまうことがわかりました。

私は Heroku のファンでもあり、そのため Postgres についてよく耳にしますが、SQL クエリが便利な場合もあります。

私はデータベースの専門家ではないので、どちらに進むべきかは一生わかりません。どちらを検討すべきか、またその理由についてアドバイスをいただければ幸いです。

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

  1. これを例にしたいので、適切なサイズのデータ​​をホストする方法があるとよいでしょう。MongoDB が確実にこれを提供していることは知っていますが、Heroku のような Postgres paas のデータベースはかなり小さいようです (Web サイトへのすべての訪問者をログに記録しているため)。

  2. シンプルで他の人に説明しやすいデータベース。

  3. パフォーマンスはそれほど重要ではありませんが、速度は問題になりません

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

: 炎上戦争はやめてください。誰もが独自の意見を持っています :)

4

1 に答える 1

24

SQL データベースと NoSQL データベースのどちらを選択するかは、確かに現在激しく議論されており、このテーマに関する優れた記事がたくさんあります。最後にいくつか挙げておきます。特定のニーズに対して、NOSQL よりも SQL を推奨することに問題はありません。

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

検討できる 3 番目のオプションは redis ( http://redis.io/ ) です。これは単純なキー値のデータ ストアであり、SQL のようにクエリを実行すると非常に高速ですが、厳密に型指定されているわけではありません。

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

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

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

于 2013-09-13T00:33:19.183 に答える