2012-05-22 8 views
5

私はデータベースを破棄したいが、私はこのトピックでは専門的ではない。ここに私の考察があります。シャーディングキーは、要求を正しいノードに向けるための優れたインデックスですが、私のテーブルで定義される残りのインデックスはどうですか?これらのインデックスを参照しているリクエストを正しいノードに配信して、1つのノードだけがリクエストを処理するようにしたい。この目的のために理解している限り、いくつかの集中インデックスノードが存在する必要があります。だから私の質問は、この機能が既にMySQLのようなRDBMSに存在するのか、他の特別な製品を使うべきかということです。シャーディングとインデックス

答えて

0

免責事項:私はScaleBaseのために働く、私が住んでいると息が毎日シャーディング...

私はここに助言するであろうことは、例えば、カラムAによるシャード場合、WHEREとcolumnA = XXに行きますシングルシェード。 WHERE columnB = xxは、すべての部分にcolumnB = xxがある可能性があるため、すべてのシャードに移動する必要があります。 columnAとcolumnBが関連していない限りそして、マッピングテーブルに関係を保存する必要があります。 私は、すべてのDB上での実行が超高速であると言うことができます。あなたは並列で実行し、結果をマージする必要があります。あなたが記述しているものhttp://database-scalability.blogspot.com

+0

はい、これはわかりません。 dbインデックス(レコードの物理的な位置+マシンID)専用のノードがある場合、B列を参照する各クエリを、実際にデータがあるマシンに移動させることができます。これはより速い! –

0

アンドレイは、どこで、Clustrixデータベースの動作を正確にどのようにある:ScaleBaseで我々は、ちょっと私のブログで詳細情報を参照してください...

をORDER BY、それは簡単ではないなど、GROUP BYをマージサポートデータと索引は自動的に分散され、問合せはノード間で分散されます。クラスタ "brings the query to the data"であり、共有されていないアーキテクチャを持っています(したがって、集中インデックスは不要です)。 MySQLには分散コンピューティングのための組み込み機能はなく、さまざまなボルトオンオプションがありますが、集中リソース制限に達すると最終的にスケーリング制限に遭遇します。

関連する問題