已知Cassandra分区具有20亿个细胞的理论极限.但是,在下面这样的情况下,它是如何工作的:
create table table1 (
some_id int PRIMARY KEY,
some_name text
);
create table table2 (
other_id int PRIMARY KEY,
other_name text
);
Run Code Online (Sandbox Code Playgroud)
假设我们在table1上有10亿个单元格(some_id = 1).如果我们在table2上的分区中有另外10亿个单元格(other_id = 1),那么这些单元会增加到20亿个理论极限吗?
换句话说,将不同表中的相等分区键存储在一起?
不同的表具有不同的分区.这使得任何特定分区的结构都是同质的(它将始终遵循单个表的被禁止的模式),这允许进行优化.
如果你看一下底层的存储引擎,你会发现每个表都有它自己的目录结构,这清楚地表明一个表中的分区永远不会与另一个表的分区交互.(参见/ var/lib/cassandra /)