2

「地域マネージャー」が複数の地区にある複数の学校を管理するのに役立つ大規模な Web アプリを構築しています。

合計で、約 400,000 人の学生と教師がいます。

成績管理などの当たり前の管理に加えて、出席管理(毎日)も必要になります。

私は、Heroku にデプロイする小規模な Web アプリを構築することに慣れています。この規模のシステムを考えると、今後は非リレーショナル DB の使用を検討する必要がありますか?それとも PostgreSQL に固執し、高速性とデータの整合性を確保するために特定の最適化を行う必要がありますか?

明確でない場合、主な懸念は、リレーショナル db システムで、非常に多くのテーブルにわたって非常に多くのレコードを管理するのに非常に遅いシステムの 1 つです。

また、リレーショナル DB を使用することが推奨される場合、速度を確保するために実行できる一般的な最適化は何ですか? 最も大きく、最も明白なものは、最も頻繁にアクセスされる情報にインデックスを使用することです....それ以外のものは大歓迎です。

ありがとう。

PS 私のチームは、私たちが何をすべきかについて分かれているので、皆さんはバランスを崩すのに役立つ意見を貸してくれるでしょう :)

4

4 に答える 4

3

postgresqlに固執します。なぜ他の何かがより良いのでしょうか?

あなたが提供した少しの情報で、私はあなたのパフォーマンスがおそらく2つのことに帰着するだろうと推測することができます:

  1. 右側の列の適切なインデックス
  2. レールを使用したキャッシングとおそらくredis

Postgresqlはディスク上のデータストアを提供します。redisを使用してページをキャッシュすると、ディスクに触れないように、データベースクエリとHTMLのレンダリングされた部分をメモリにキャッシュできます。

于 2013-01-01T19:42:47.537 に答える
2

適切なインデックスを設計することは、パフォーマンス アーキテクチャの重要な部分ですが、情報のインデックスを設計するのではなく、クエリのインデックスを設計します。また、リレーショナル データベースと非リレーショナル データベースの選択とはほとんど関係がありません。どちらも「適切な」インデックスを設計する必要があるためです。詳細については、私のプレゼンテーションHow to Design Indexes, Really を参照してください。

于 2013-01-01T20:01:18.027 に答える
1

パフォーマンスに加えて、セキュリティ上の懸念を必ず考慮してください。NoSql データベースが必ずしも悪いわけではありませんが、違います。非機密データを保護するアプローチはさまざまです。

個人を特定できる情報を保存している場合は、オプションを慎重に検討してください。違いが何であるかがわからない場合は、保護する方法を知っているものを使用してください.

また、データを分離することを検討しても害はないかもしれません - 一部はリレーショナルで、一部はそうではありません。システムをゼロから構築する柔軟性がある場合は、状況に最適な方法が適切です。

推奨読書:

おすすめの視聴方法:

于 2013-01-01T19:47:01.210 に答える
1

Facebook はMySQLを実行しています。40 万人がこのシステムの 40 万ユーザーを意味するかどうかはわかりません。そうは思いませんが、それでも Facebook は桁違いに大きく、MySQL を使用しています。

ここに事実があります: スケーリングは難しいです。NoSQL バックエンドで簡単に拡張できるのであれば、今日ではリレーショナル データベースから実際に始める人はいないと思いませんか? これがあなたの質問に対する答えではないことは承知していますが、これには単純な答えはないと思います。

使い慣れたものを使用するか、最もワクワクするものを使用するか、今後数年間使用すると思われるものを使用するか、サポートを購入しやすいと思われるものを使用してください。この選択では、アカウントのスケーラビリティは気にしないでください。問題に直面するまで解決方法がわからないからです。完全に存在するかどうかさえわかりません。

ところで、フォールト トレランス、キャッシング、および SQL と NoSQL よりもパフォーマンスに大きな影響を与えるその他の事柄について、多くの考慮事項があります。ところで、すべてのリレーショナル データベース エンジンが同じというわけではありません (すべての NoSQL データストアが同じというわけではありません...)。

于 2013-01-01T20:08:03.043 に答える