0

cassandra在一个实验项目中使用。我的模型很简单,我有下表:

create table message(
id varchar,
msgId varchar,
tId varchar,
gtName varchar,
status varchar,
text text,
PRIMARY KEY (id, tId)

);

在第一次插入时,我只有 id 和 tId 可以插入。将有一个即时更新,我可以让 msgId 从被调用方法的返回类型中持久化。将对我的应用程序进行另一个调用,status其中包含仅知道 msgId 的应用程序。在这种情况下,我将需要查找以使用where clause on msgId.

我怎么可能在cassandra 2.1.0我也在使用的情况下正常工作spring-data-cassandra:1.1.0.RELEASE

谢谢你的建议

4

1 回答 1

1

第一个简单的步骤是在该键上创建二级索引

create index on message(msgId);
select * from message where msgId='foo';

二级索引确实存在一些性能问题,并且并不总是很合适,具体取决于您的数据模型。另一种选择是创建第二个映射msgIdid和的表tId

create table msgid (
     msgId varchar,
     id varchar,
     tId varchar,
     primary key (msgId)
);

以下是关于二级索引使用的一些有用的讨论:

于 2014-10-17T17:24:16.793 回答