【发布时间】:2021-11-12 03:27:17
【问题描述】:
创建表(id int 主键, c1 int, c2 int, ....c1000 int);
我知道RDBMS连续存储这一行的所有列。如果我只想查询一行的c400,我可以快速定位该行,但必须读出整个文件然后找到c400的值,因此当我要查询表的所有 c400 值时,这意味着将读取所有列和所有行。
如果我在 cassandra 中创建同一个表并将“id”列指定为分区键。我知道一个分区中的 c1,c2,...c1000 将存储如下:
{c1:1, c2:123, c3:45, ....., c1000: 10}
这是 k-v 存储结构,但仍然是列连续存储。当我想读取一个分区的 c400 列时,cassandra 如何在不扫描其他列的情况下快速读取它?
【问题讨论】:
标签: cassandra cassandra-3.0 cassandra-2.0