シャーディングは、データベースの「水平パーティショニング」の別名です。あなたはそれをより明確にするためにその用語を検索したいかもしれません。 Wikipediaから
:
水平パーティショニングは、データベーステーブルの行が(正規化のような)のカラムではなく分裂よりも、別々に保持される設計原理です。各パーティションはシャードの一部を形成し、別のデータベースサーバーまたは物理的な場所に配置されます。利点は、各テーブルの行数を減らすことです(インデックスサイズが縮小され、検索パフォーマンスが向上します)。シャーディングがデータの実際の側面(例えば、ヨーロッパの顧客とアメリカの顧客)に基づいている場合、適切なシャードメンバーシップを容易かつ自動的に推論し、関連するシャードのみを照会することが可能である。
シャーディングに関するいくつかの詳細:
はまず、各データベースサーバは同じテーブル構造を有する、同一です。第2に、データレコードは論理的に分割されたデータベースに分割されます。パーティション化されたデータベースとは異なり、完全な各データレコードは、そのデータベースでのみ実行されるすべてのCRUD操作を使用して、1つのシャードにのみ存在します(バックアップ/冗長性のミラーリングがない限り)。使用する用語が気に入らないかもしれませんが、これは論理データベースを小さな部分に編成する別の方法を表しています。
更新: MVCを壊すことはありません。データを格納する正しいシャードを決定する作業は、データアクセスレイヤーによって透過的に行われます。そこでは、あなたのデータベースを断片化するために使用した基準に基づいて正しい断片を判断する必要があります。 (あなたのアプリケーションのいくつかの具体的な側面に基づいて、いくつかの異なる断片にデータベースを手動で分割する必要があるため)正しい断片を使用するためにデータベースからデータをロードして格納する際には注意が必要です。
Javaコードのthis exampleは、現実世界のシナリオではどのように機能するのかが幾分明確になります(Hibernate Shardsプロジェクトについて)。
「why sharding
」に対処するには、主に非常に大規模なアプリケーションの場合にのみ、ロットのを使用します。まず、データベースクエリの応答時間を最小限に抑えるのに役立ちます。第2に、より安価な「ローエンド」マシンを使用して、1台の大きなサーバーではなく、より多くのデータをホストすることができます。
だろう1は役に立ち http://vimeo.com/26742356 http://www.slideshare.net/rightscale/rightscale-webinar-scaling? -your-database-in-the-cloud http://vimeo.com/32541189 –