我有一个表格,其中包含当前实例的市场信息。此表中的行不会超过700.在此实例中创建主键是否有意义?
我将查询此表以获取所有数据或搜索“symbol”或“sector”。
CREATE TABLE current(
symbol text,
sector text,
open double,
high double,
low double,
close double,
volume bigint,
market_cap double,
shares double,
last_update timestamp,
PRIMARY KEY (symbol, sector)
)
确保快速检索的最佳方法是什么?
答案 0 :(得分:0)
是的,在此表上创建主键是有意义的,因为cassandra不允许没有主键的表。如果你总共不超过700条记录,我会质疑使用Cassandra的智慧。 Cassandra旨在有效处理数十亿条记录,数PB的数据。
假设您在决定使用Cassandra之前确实做了一些研究,并且仍然得出结论它非常适合您的用例,我还假设您了解Cassandra不是关系数据库,并且您了解分区键和群集键。分区键是基于散列的,决定Cassandra集群中的哪个(哪些)节点负责处理每一行,并且只允许相等查找。聚类键是基于树的,决定节点上行的顺序,并允许相等和范围查找。
此外,Cassandra仅允许您执行全表扫描或至少查询整个分区键。因此,如果不创建二级索引(即实际上是反模式),则查询symbol
或 sector
是不可行的,但由于您只有700行,因此可能不会那么糟糕。< / p>