2017-08-11 55 views
0

我讀過很多博客,告訴不要使用Cassandra COLLECTIONS。由於UPDATE操作也會創建Tombstone,所以會影響性能。由於過多的墓碑可能導致應用程序死亡。可以使用Cassandra Collections嗎?

可以存儲更少的更新數據,如輔助手機號碼,用戶的電子郵件嗎? 等?

或者我應該避免使用CSV或JSON存儲在Varchar中的集合?

回答

3

是的,你可以使用收集

記得有上集合的大小限制:

  • 的集合(list):集合大小:2B(2^31);值大小:65535(2^16-1)(Apache Cassandra™2.1和更高版本,使用本地協議v3)
  • 收集(集):收集大小:2B(2^31);值大小:65535(2^16-1)(Apache Cassandra 2.1及更高版本,使用本機協議v3)
  • 收藏(地圖):收藏大小:2B(2^31);按鍵數:65535(2^16-1);值大小:65535(2^16-1)(Apache的卡桑德拉2.1及更高版本,使用本地協議V3)

和墓碑創建測試,比方說,你有表

CREATE TABLE playlists (
    id uuid, 
    song_order int, 
    tags set<text>, 
    PRIMARY KEY(id, song_order) 
); 

如果您使用下面的更新語句,墓碑將被創建

UPDATE playlists SET tags = {'1973'} 
    WHERE id = 62c36092-82a1-3a00-93d1-46196ee77204 AND song_order = 1; 

但是如果你使用下面的更新語句,不會產生墓碑

UPDATE playlists SET tags = tags + {'1973'} 
    WHERE id = 62c36092-82a1-3a00-93d1-46196ee77204 AND song_order = 1;