私は最近Cassandraを使い始めました。私は伝統的なリレーショナルデータベースのバックグラウンドから来ています。だから間違いありません。私がいつもやっていることの一つは、各行(OIDなど)に固有のIDを生成することです。だから、私がカッサンドラで作成している私のテーブルでは、私はそれぞれにUUIDカラムを入れてUUIDを生成しています。私の質問は...これは本当に「必要なのですか?私はパーティションキーの一部としてUUIDを使用していないので、現時点では何も使用していませんが、壊すのは難しい習慣です。いくつかのアドバイスは素晴らしいでしょう!カサンドラのUUIDは本当に「必要ですか?」
0
A
答えて
2
正確には必要ありません。しかし、テーブルにUUIDを導入することは、特定の場合には有効です。このテーブルには、ログインしてユーザーを照会することができます
CREATE TABLE user (
id uuid,
name text,
login text,
day_of_birth date
) PRIMARY KEY (login);
:たとえば はあなたのようなテーブルを持っている想像してみてください。 名前でユーザーを照会するとします。 もちろん、この種のクエリを数回実行する場合は、SECONDARY INDEX
を作成することができます。 しかし、あなたは良い読み取り性能を持つようにしたい場合は、あなたのようなテーブル構造を持つことによって、あなたのデータを非正規化することができます
CREATE TABLE user (
id uuid,
name text,
login text,
day_of_birth date
) PRIMARY KEY (id);
CREATE TABLE user_by_name (
id uuid,
name text
) PRIMARY KEY (name);
CREATE TABLE user (
id uuid,
login text
) PRIMARY KEY (login);
しかし、この構成では、データを保持するために、すべての3つのテーブルに挿入して更新する必要があります。他の2つのテーブルを作成する代わりに、MATERIALIZED VIEW
を使用して1つのテーブルのみを保持することができます。
CREATE TABLE user (
id uuid,
name text,
login text,
day_of_birth date
) PRIMARY KEY (id);
CREATE MATERIALIZED VIEW user_by_name
AS
SELECT *
FROM user
WHERE id IS NOT NULL
AND name IS NOT NULL
PRIMARY KEY ((name), id);
CREATE MATERIALIZED VIEW user_by_login
AS
SELECT *
FROM user
WHERE id IS NOT NULL
AND login IS NOT NULL
PRIMARY KEY ((login), id);
関連する問題
- 1. KillTimerは本当に必要ですか?
- 2. CDATAは本当に必要ですか?
- 3. 本当に必要ですか?
- 4. 本当にlibgccが必要ですか?
- 5. カサンドラUUID理解
- 6. EKCalendarItemのUUIDは本当に一意ですか?
- 7. OpenSSLには本当にopenssl.confへのパスが必要ですか?
- 8. イベントのバリデーション - Jsヘビーアプリケーションには本当に必要ですか
- 9. node.jsの処理にはプロキシが本当に必要ですか?
- 10. pom.xmlのmaven "dependencies"は本当に必要ですか?
- 11. この場合、ステートレスセッションBeanは本当に必要ですか?
- 12. 私は本当にJavaDocタグ@fileか@sinceが必要ですか?
- 13. 認証サービスにはandroid:exported = "true"が本当に必要ですか?
- 14. スピンロックには本当にDMBが必要ですか?
- 15. JavaScript "window.onload" - "ウィンドウ"は本当に必要ですか?
- 16. SHA暗号化 - 塩は本当に必要ですか?
- 17. ELF .notesセクションは本当に必要ですか?
- 18. scala.util.automata、scala.util.regexp、およびscala.util.grammarは本当に必要ですか?
- 19. 関係テーブルは本当に必要ですか?
- 20. 本当にこのストアドプロシージャのパラメータが必要ですか?
- 21. ROOTのClassImpプリプロセッサマクロ - 本当に必要ですか?
- 22. 本当にユニコーンレール用のDB接続プールが必要ですか?
- 23. C++でmain()が本当に必要ですか?
- 24. C#でVOLATILEキーワードが本当に必要ですか?
- 25. A2lix翻訳フォームで本当に必要ですか?
- 26. ドッカー画像にセキュリティアップデートが本当に必要ですか
- 27. iOSアプリケーションにMainWindow.xibが本当に必要ですか?
- 28. 本当にASP.NETラベルにText属性が必要ですか?
- 29. OAuth 2クライアントは本当にTLSを必要としますか?
- 30. 本当にナンスを使う必要はありますか?
ああ、これはクールです!私はカサンドラがマテリアライズド・ビューズを持っているのを知らなかった。それは実際に私が新しいテーブルを作成しなければならないと思ったシナリオで、私を大いに助けてくれます。ありがとう! – cloudwalker
マテリアライズドビューはcassandra> = 3.0でのみサポートされているということを忘れてしまいました –