2017-09-05 7 views
0

で定義Primayキーは、私はテーブルがテーブル猫でcats理解とカサンドラでカサンドラ

と呼ばれていると言うことができます、猫のみ一意猫の色との両方に基づいて同定することができることを言うことができます猫の名前など。

color: blue, name: henry 

しかし、色が青い猫がたくさんある可能性があります。同様に、ヘンリーという名前の猫がたくさんある可能性があります。しかし、色が青いヘンリーという名前の猫は1匹だけです。

私の主な質問は、主キーとその定義方法です。たとえば、名前をパーティションキーにする必要がありますか、または色をパーティションキーにする必要がありますか、またはこれらのフィールドを両方ともパーティションキーの一部として作成する必要がありますか?色や名前をクラスタリングキーとして追加すると有益でしょうか?私はパーティションキーとしてハッシュ値についても読んだ。パーティションキーとして別のハッシュ値を持ち、セカンダリインデックスとして名前と色を追加すると、ここで何か利点がありますか?

ここでパフォーマンスの影響を教えてください。どのタイプのテーブル設定が最も効果的でしょうか?

ユーザーは、名前と色のいずれかまたは色だけで検索しますが、名前だけで検索することはありません。

ありがとうございます。

答えて

1

テーブルからデータを取得するには、パーティションキーに定義されているすべての列の値を指定する必要があります。あなたのケースでは、ユーザー は色だけとも次の定義

PRIMARY KEY(色、名前)が必要になり、両方の色と名前で照会することができるので、あなたはそれがパーティション・キーのみと色で照会しても、キー

の両方で問い合わせることができます。これにより