【发布时间】:2016-12-16 03:53:54
【问题描述】:
谁能告诉我Cassandra中元组和用户定义类型的区别
【问题讨论】:
谁能告诉我Cassandra中元组和用户定义类型的区别
【问题讨论】:
Datastax documents 那
当您使用元组时,您可以使用元组来替代用户定义的类型 不需要添加新字段。
User-defined types 为您提供了更大的灵活性,可以更改字段数量以防您稍后需要更新数据,并允许您为每个字段指定有意义的名称。 UDT 工作原理的经典示例是地址。
CREATE TYPE mykeyspace.address (
street_number int,
street text,
city text,
zip_code int,
phones set<text>
);
并创建表格
CREATE TABLE users (
id uuid PRIMARY KEY,
address frozen <address>
);
等价的元组是
CREATE TABLE users (
id uuid PRIMARY KEY,
address <tuple<int, text, text, int, set<text>>
);
因此,对于字段名称不重要的固定数量的收集数据,元组最适合(地址列绝对不是一个好的用例;字段很重要--street_number 和 zip_code 可能会混淆- - 以后您将无法添加详细字段)。 UDT 将允许这样做,并且还允许您按字段名称进行查询。
此外,性能没有显着差异。
【讨论】: