在Cassandra中使用带二级索引的storyteller变量会降低性能吗?



我想做一个系统,用计数器变量报告在活动期间参加课程的人数。主键是事件id,副键是舞台的名称。以一个有科技公司的地区为例。

CREATE TABLE event (
event_id text,
stand text,
nb counter,
PRIMARY KEY(event_id, stand)
)
INSERT INTO event(event_id, stand, nb) VALUES (2, "appel", 0);
INSERT INTO event(event_id, stand, nb) VALUES (2, "google", 0);
INSERT INTO event(event_id, stand, nb) VALUES (2, "amazon", 0);

我的问题是,在cassandra文档中,建议在计数器上放置尽可能少的索引。最好的方法是创建一个带有两个索引的表,或者为每种类型的标准创建一个表(不需要更多的命令来恢复信息)

CREATE TABLE stand_name (
event_id text,
nb counter,
PRIMARY KEY (event_id)
)
INSERT INTO google(event_id, nb) VALUES (2, "appel", 0);
INSERT INTO amazon(event_id, nb) VALUES (2, "google", 0);
INSERT INTO apple(event_id, nb) VALUES (2, "amazon", 0);

我不得不承认我被你的问题弄糊涂了,不太明白索引是如何起作用的。

对于计数器,您只能有:

  • 组成主键的列,
  • 计数器列本身

要检索计数器值,必须提供主键:

SELECT counter_col FROM counter_tbl WHERE pk = ?

在表上创建二级索引没有任何好处,因为实际上没有任何东西需要索引——计数器表中除了计数器本身之外没有存储其他列。干杯!

相关内容

  • 没有找到相关文章

最新更新