CouchDB や MongoDB などの NoSQL の使用に関するミニブックをいくつか読みました (後者の方がよく知っています)。
パフォーマンス、特にスケーリングの観点から、より適切なものは次のとおりです。
- 必要に応じて個別のサーバーでホストされる個々の DB
- シャーディングを使用して分割された単一の MongoDB
マスター/スレーブなどの SQL スケーリング手法は省略しました (これは、サーバーの規模を超えるアプリケーションで SQL をスケーリングする方法であると理解しています)。
私のアプリケーションの各「アカウント」は、個人的な使用のみを目的としており、非常識なサイズやアクセスにまで成長することはありません。したがって、アプリケーションを 1 つまたは数台のサーバーでホストし、必要に応じてデータを 1 つまたは複数のサーバーに分散させることができると考えています。1 つの SQL がタップアウトされると、DB の半分 (使用量に比例して言えば) を別のサーバー (リモートかどうかに関係なく) に再配置します。理論的には、これによりパフォーマンスが向上し、わずかな労力で多少のスケーリングが可能になるはずです???
あるいは、NoSQL ソリューションでの共有は非常に簡単に思えます - 唯一の副作用は、すべてのレコードを単一のデータベースに保持する必要があることです - 個々のセキュリティがわずかに低下します - 理論的には?
この問題に関するあなたの経験/意見は何ですか?
よろしく、アレックス