我想做一个系统,用计数器变量报告在活动期间参加课程的人数。主键是事件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 = ?
在表上创建二级索引没有任何好处,因为实际上没有任何东西需要索引——计数器表中除了计数器本身之外没有存储其他列。干杯!