我在我的应用程序中使用cassandra它开始占用磁盘空间比我预期的要快得多,并且比手动中定义的要快得多。考虑这个最简单的例子:
CREATE TABLE sizer (
id ascii,
time timestamp,
value float,
PRIMARY KEY (id,time)
) WITH compression={'sstable_compression': ''}"
我正在关闭压缩,以查看每条记录需要多少字节。
然后我插入几个值,运行nodetool flush
,然后检查磁盘上数据文件的大小,看看它占用了多少空间。
结果显示巨大的空间浪费。每条记录占用67个字节,我不确定这是怎么回事。
我的id是13个字节长,因为它只在数据文件中保存一次,因为它总是用于测试目的。
大小应该是:
为了测试,我的id总是一样的,所以如果我理解正确,我实际上只有一行。
所以,我的问题是如何最终使用67个字节而不是33个字节。
数据文件大小正确,我尝试插入100,1000和10000条记录。大小总是67个字节。
答案 0 :(得分:2)
文件中讨论了3个开销。一个是您满足的列开销。第二个是行开销。而且如果你的replication_factor大于1,那么这也是一个问题。