一般に信じられていることとは異なり、NoSQLはパフォーマンスやスケーラビリティについてではありません。これは主に、いわゆるオブジェクトリレーショナルインピーダンスの不一致を最小限に抑えることですが、水平方向のスケーラビリティとRDBMSのより一般的な垂直方向のスケーラビリティについても説明します。
高速挿入と高速ルックアップの単純な要件については、ほとんどすべてのデータベース製品で十分です。リレーショナルデータや結合を追加したい場合、または強制する必要のある複雑なトランザクションロジックや制約がある場合は、リレーショナルデータベースが必要です。NoSQL製品は比較できません。
スキーマレスデータが必要な場合は、MongoDBやCouchDBなどのドキュメント指向データベースを使用することをお勧めします。緩いスキーマがこれらの主な魅力です。私は個人的にMongoDBが好きで、いくつかのカスタムレポートシステムで使用しています。データ要件が絶えず変化しているときに非常に便利だと思います。
他の主要なNoSQLオプションは、BigTableやCassandraなどの分散型Key-Valueストアです。これらは、コモディティハードウェアを実行している多くのマシン間でデータベースを拡張する場合に特に役立ちます。もちろん、サーバーでも問題なく動作しますが、ハイエンドのハードウェアや、SQL Server、Oracle、または垂直用に設計されたその他のデータベースを利用していません。スケーリングを利用していません。また、明らかに、リレーショナルではなく、正規化の実施には適していません。または制約。また、お気づきのように、.NETサポートはせいぜいむらがある傾向があります。
すべてのリレーショナルデータベース製品は、限定された種類のパーティショニングをサポートしています。BigTableや他のDKVSシステムほど柔軟性がなく、数百に簡単に分割できません。のサーバーにすることはできませんが、実際にはそれがあなたが探しているもののようには聞こえません。データのインデックス作成と正規化を行い、強力なハードウェア(特に、余裕がある場合はSSD)でデータベースを実行し、2、3、または5つの物理ディスクに分割する限り、数十億のレコード数を処理するのに非常に優れています。必要。
上記の基準を満たしている場合、企業環境で作業していて、適切なハードウェアとデータベースの最適化に費やすお金がある場合は、今のところSQLServerを使用します。ペニーをつまんでいて、これをローエンドのAmazon EC2クラウドコンピューティングハードウェアで実行する必要がある場合は、代わりにCassandraまたはVoldemortを選択することをお勧めします(.NETで動作するようになると仮定します)。