在Cassandra列族的模式中提供列名是否有任何好处,而不是在模式中不提供任何列信息?

时间:2011-12-12 07:37:34

标签: schema size cassandra

我说列系列用户,我想在其中存储用户名。 所以我将在用户列族中插入“user-name”=“nameValue”对。以下是两种方法

  1. 如果我在创建columnFamily时未在用户中提及“用户名”作为列名,并向用户CF插入如此百万列并且

  2. 如果我使用列元数据创建CF用户,包括“用户名”作为模式中的列名,并插入如此百万列

  3. 这两种方法的大小(磁盘上sstables的大小)和插入cassandra所花费的时间是否会有所不同?

1 个答案:

答案 0 :(得分:2)

只有cassandra才能将column_metadata字段用于两件事。二级索引和列值验证。这听起来并不像是在创建二级索引(显然会占用更多空间并影响插入时间)

因此,您将获得的好处是验证您的列值是否符合特定类型。这根本不会增加CF的大小。显然,插入该列时会有一个额外的步骤,但那里的性能影响应该微乎其微。

使用column_metadata的另一个小好处仅仅是为了审美目的/ cf的文档及其用途。如果您想将其用于此目的或用于验证列值,请继续。