众所周知,Cassandra分区的理论极限为20亿个单元。但在下面这样的情况下,这是如何工作的:
create table table1 (
some_id int PRIMARY KEY,
some_name text
);
create table table2 (
other_id int PRIMARY KEY,
other_name text
);
假设我们在表1的分区(some_id=1)中有10亿个单元格。如果我们在表2的分区(other_id=1)中有另外10亿个单元,这些单元加起来会达到20亿的理论极限吗?
换句话说,不同表中相等的分区键是否存储在一起?
不同的表有不同的分区。这使得任何特定分区的结构都是同质的(它将始终遵循单个表的禁止模式),这允许进行优化。
如果你看一下引擎盖下的存储引擎,你会发现每个表甚至都有自己的目录结构,这表明一个表中的分区永远不会与另一个表的分区交互。(请参见/var/lib/casandra/)