阿帕奇卡桑德拉。具有复合主键的索引或 table 的特定情况
Apache Cassandra. Specific case for an Index or a table with composite primary key
我在 Cassandra 的 POC 中有这个场景。
一个table
CREATE TABLE B (B-UID UUID,
A-UID UUID,
CREATED_AT timestamp ,
JSON text,
PARENT_B-UID UUID,
POSTALCODE text,
CUSTOMER_TYPE text,
START_DATE timestamp,
END_DATE timestamp,
SOME_PRICE int,
PRIMARY KEY (B-UID));
24k rpm 写入/2k rpm 读取。在大多数情况下,对于 1 个 A-UID,我会有 67 个 B-IUD。
在我的应用程序的生命周期中,我必须搜索所有 B-IUD 以找到特定的 A-IUD。
我的问题是:使用复合主键创建 table 还是创建 A-IUD 索引更好?写入性能会受到复合主键的影响吗?
我已经阅读了 DataStax 上的文档,他们在那里编写的示例对我来说不太好,至少在我看来是这样!!! :)
尽量避免二级索引
如果唯一的查询是检索特定 A-IUD 的所有 B-IUD,则具有复合主键(A-IUD、B-IUD)。
如果您还需要搜索特定的 B-IUD,有两个表
1 : Table 1 : 以 B-IUD 作为主键,其余列保持原样
2 : Table 2 : 具有复合主键(A-IUD、B-IUD)和其余列原样
我在 Cassandra 的 POC 中有这个场景。
一个table
CREATE TABLE B (B-UID UUID,
A-UID UUID,
CREATED_AT timestamp ,
JSON text,
PARENT_B-UID UUID,
POSTALCODE text,
CUSTOMER_TYPE text,
START_DATE timestamp,
END_DATE timestamp,
SOME_PRICE int,
PRIMARY KEY (B-UID));
24k rpm 写入/2k rpm 读取。在大多数情况下,对于 1 个 A-UID,我会有 67 个 B-IUD。
在我的应用程序的生命周期中,我必须搜索所有 B-IUD 以找到特定的 A-IUD。
我的问题是:使用复合主键创建 table 还是创建 A-IUD 索引更好?写入性能会受到复合主键的影响吗?
我已经阅读了 DataStax 上的文档,他们在那里编写的示例对我来说不太好,至少在我看来是这样!!! :)
尽量避免二级索引
如果唯一的查询是检索特定 A-IUD 的所有 B-IUD,则具有复合主键(A-IUD、B-IUD)。
如果您还需要搜索特定的 B-IUD,有两个表
1 : Table 1 : 以 B-IUD 作为主键,其余列保持原样
2 : Table 2 : 具有复合主键(A-IUD、B-IUD)和其余列原样