SQL/NOSQLを選択するための考慮事項は何ですか? [閉まっている
-
19-09-2019 - |
質問
ターゲットアプリケーションは、1時間に数百から数千ユーザーをサポートするために構築された中規模のWebサイトであり、その上にスケーリングするオプションがあります。データモデルはかなり単純であり、キャッシュの可能性はかなり高いです(アクションを編集するための読み取りの比率が〜10:1)。
NOSQLオプション(HBaseやCassandraなど)からリレーショナル、SQLベースのデータストアを選択するときの考慮事項は何ですか?
解決
私にとって、あなたは解決すべき特定の問題を抱えていません。酸性度が必要な場合は、データベースを使用してください。そうしないと、それは問題ではありません。最後にアプリを作成するだけです。そして、私に引用させてください nosql:それがそんなに簡単だったら:
指摘すべき本当のことは、データベースを選択できないので、あなたが非常に素晴らしいものを作ることを妨げられているなら、あなたはそれを間違っているということです。 MySQLを知っている場合は、使用しました。実際に必要なときに最適化します。 AK/Vストアのように使用し、RDBMSのように使用しますが、神のためにキラーアプリを作成してください!これはほとんどのアプリにとって重要ではありません。 FacebookはまだMySQLを多く使用しています。ウィキペディアはMySQLをたくさん使用しています。 FriendFeedはMySQLをたくさん使用しています。 NOSQLは素晴らしいツールですが、それは確かにあなたの競争力になるのではなく、アプリを熱くすることはありません。そして何よりも、あなたのユーザーはこれについてたわごとを与えません。
他のヒント
diggにはいくつかあります 面白い 記事 この質問について。基本的に、あなたは読み取りではなく書き込みのために処理の負担を変えています。これは、非常にスケーラブルなアプリケーションで望ましい場合があります。 Cassandraは特に非常に利用可能です。
単純なことに、Cassandraは、Dynamoのようなインフラストラクチャで実行されているBigtableデータモデルを備えた分散データベースです。列指向であり、比較的構造化されたデータを保存できます。完全に分散化されたモデルがあります。すべてのノードは同一であり、単一の障害点はありません。また、非常に過失耐性です。データは、複数のノードとデータセンター全体に複製されます。カサンドラも非常に弾力性があります。新しいマシンが追加されると、スループットが直線的に増加します。
私はイアン・ユーレの経験則が好きだった:「データベースの上にmemcacheを展開している場合、あなた自身のアドホックで、NOSQLシステムを維持するのが難しい。」
http://www.rackspacecloud.com/blog/2010/02/25/should-you-switch-to-nosql-too/
あなたが言うとき、Data Modellはかなり単純です、これはNOSQLオプションについて話すことができます。
選択、重いトランザクション負荷、または複雑なテーブル構造を作成するための属性がたくさんある場合、従来のSQLテーブルについて話すでしょう。
1つまたは2つのNOSQLデータベースでデータモデルを実装することがどれほど難しいかを知ることをお勧めします。これがかなり難しい場合は、比較するために古典的なテーブルスキーマを作成することもできます。
NOSQLが難しい場合、これはSQLオプションについて話すことができます。しかし、重い負荷はNOSQLでよりよく処理される可能性がありますが、優れたSQLデータベースが十分にスケーリングする可能性があります...
バッファリングは、シンプルなプロキシサーバーでも行うことができます...
困難については、NOSQLとSQLの組み合わせも考慮することができます。