我想在後端使用Cassandra爲教育目的構建一個電影數據庫。查詢數據庫主要由電影標題製作。所以目前我的數據適合以下模型。Cassandra的數據建模和uuid
movie title | imdb評級|發佈年份|演員
閱讀CQL文件,我發現在以下結構中使用
查詢我的是什麼,是使用單獨的ID列的必要性的音樂播放列表的例子。不能將標題列用作主鍵?不使用單獨的uuid字段的優點和缺點是什麼?
這我設計我的模型的命令是
CREATE TABLE movies (
title text,
imdb_rating double,
year int,
actors text,
PRIMARY KEY (title, imdb_rating));
在這裏,我相信在我的模型標題是PRIMARY KEY
和PARTITION KEY
和imdb_rating是CLUSTERING KEY
(安排升序輸出)。我的模型有什麼問題嗎?它會如何影響數據的分佈,爲什麼我不應該使用uuid?我打算保持2 replication_factor因爲我使用的節點數量只是3
而且根據文檔
不要在這些情況下使用索引:
... ... •在頻繁更新或刪除列
在我的數據庫的最新列imdb_rating所以我不上構建任何輔助索引。
如果我使用(movie_title,year)的複合主鍵,它會影響性能,因爲一年內發佈同名電影的機會非常少。另外,儘管電影標題不是唯一的,但如果我將它用作PRIMARY KEY,這會如何影響查詢的性能? –
>如果我使用(movie_title,year)的複合主鍵,它會影響性能,因爲一年內發佈同名電影的機會非常少。 這是完全沒有問題,這是沒有性能缺陷。 >儘管電影標題不是唯一的,如果我將它用作PRIMARY KEY,這會如何影響查詢的性能? 如果您是按標題查詢,則表現最佳。但通過這種方式,您無法通過有效評估來查詢。 – Navid
@Navid如何在這種情況下更新imdb_rating?既然你不能更新聚類列中的值,你需要刪除完整的行並插入新的行(這將創建墓碑)? – pratsJ