2

私はそれについて学ぶためにCassandraデータベースの設計に取り組んでいます。しかし、私はいくつかの専門家が私に明確にするのを手伝って欲しいという質問があります:

各列ファミリーの行はノード全体に分散されているため、各ノードには特定の列ファミリーの行の一部が含まれていることを読みました。その列ファミリーに数百万の行がある場合でも、列ファミリーを多くの列ファミリーに分割するのは良い考えではないということですか?

RDBMSでの私の経験では、パフォーマンスを向上させるには、非常に大きなテーブルを小さなテーブルに分割する方が良いと言われていますが、Cassandraではこれは必要ないようです。さらに、多くの列ファミリーがある場合は、より多くのメモリが必要になります。 。私は正しいですか?列ファミリーを多数に分割するよりも、パフォーマンスを向上させるために、列ファミリーに多くの行を保持する方がよいでしょうか。

ありがとう!

4

1 に答える 1

3

Cassandraで列ファミリーをシャーディングする必要はありません。1つのCFに、それを格納するためのストレージスペースとマシンがあるのと同じ数のデータを入れることができます。ただし、考慮すべきことの1つは、実際に大きなドライブを備えた少数のマシンよりも、多くの小さなマシンの方がパフォーマンスが向上することです。そして、そのすべてのデータを共有ストレージに置きたくはありません。Cassandraは、並列の順次読み取りと書き込みによって速度を上げます。

注意したいことの1つは、無制限の行の増加です。つまり、無制限の方法で行に列を追加します。これは、必要に応じてキーをシャーディングすることで解決するのは非常に簡単な問題です。しかし、それでも、何百万もの列を1行に書き込むことができます。

于 2013-02-01T19:51:22.120 に答える