Cassandra - 自定义类型的优点

时间:2015-04-15 11:28:01

标签: cassandra datastax cql cassandra-2.1

我打算将Java对象用作自定义类型并将其存储为Cassandra。我从类中取出2个数据成员,并将它们变成主键,并将其余数据成员保留在自定义类型中。 data members of my class: name, date_of_birth, occupation, last_visit, family_members, total_income primary key: name, date_of_birth cassandra custom type members: occupation, last_visit, family_members, total_income 与使用Cassandra数据类型存储单个数据成员相比,自定义数据类型在写入或读取时是否具有任何性能优势。

1 个答案:

答案 0 :(得分:7)

  

与根据Cassandra数据类型存储单个数据成员相比,自定义数据类型在写入或读取时是否具有任何性能优势。

不是真的。用户定义类型(UDT)的数据存储在行中的单个列中,并且应该比多个单独的列更快地读取。但是,无论您获得什么性能增益,都会很快删除,因为数据是为结果集序列化的。虽然CQL允许您根据需要读取UDT的各个字段,但Cassandra仍然必须阅读该列的所有内容。

值得注意的是,用户定义的类型与提高性能无关。它们提供了实现少量非规范化的灵活性。

只是一个建议,但也许将members作为集合更有意义,每个项目包含每个家庭成员的数据?