阿帕奇卡桑德拉。索引或具有复合主键的表的特定情况
Posted
技术标签:
【中文标题】阿帕奇卡桑德拉。索引或具有复合主键的表的特定情况【英文标题】:Apache Cassandra. Specific case for an Index or a table with composite primary key 【发布时间】:2015-05-27 21:53:59 【问题描述】:我在 Cassandra 的 POC 中有这个场景。
一张桌子
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));
24 k rpm 写入 / 2 k rpm 读取。在大多数情况下,对于 1 个 A-UID,我将拥有 67 个 B-IUD。
在我的应用程序的生命周期中,我必须在所有 B-IUD 中搜索特定的 A-IUD。
我的问题是:使用复合主键创建表还是创建 A-IUD 索引更好?复合主键会影响写入性能吗?
我已经阅读了 DataStax 的文档,他们在那里编写的示例对我的情况不太好,至少在我的理解中!!! :)
【问题讨论】:
【参考方案1】:尽量避免二级索引
如果唯一的查询是检索特定 A-IUD 的所有 B-IUD,则具有复合主键(A-IUD、B-IUD)。
如果您还需要搜索特定的 B-IUD,请准备两个表格
1:表 1:以 B-IUD 作为主键,其余列按原样 2:表 2:具有复合主键(A-IUD、B-IUD)和其余列原样
【讨论】:
感谢您的快速回复!以上是关于阿帕奇卡桑德拉。索引或具有复合主键的表的特定情况的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring-data-cassandra 查询具有复合主键的表
使用Spring-data-cassandra查询具有复合主键的表
在 SQLite.Net-PCL 中创建和使用具有复合主键的表