【发布时间】:2013-11-02 17:36:59
【问题描述】:
我在我的应用程序中使用 cassandra,它开始占用磁盘空间的速度比我预期的要快得多,也比手动定义的要快得多。考虑这个最简单的例子:
CREATE TABLE sizer (
id ascii,
time timestamp,
value float,
PRIMARY KEY (id,time)
) WITH compression={'sstable_compression': ''}"
我故意关闭压缩以查看每条记录需要多少字节。
然后我插入几个值,运行nodetool flush,然后检查磁盘上数据文件的大小,看看它占用了多少空间。
结果显示空间浪费巨大。每条记录占用 67 个字节,我不知道这怎么可能。
我的 id 是 13 字节长,它只在数据文件中保存一次,因为它总是相同的用于测试目的。
尺寸应该是:
- 时间戳应该是 8 个字节
- 值作为列名占用 6 个字节
- 列值浮点数占用 4 个字节
- 列开销 15 个字节
- 总计:33 个字节
为了测试,我的 id 总是一样的,所以如果我理解正确的话,我实际上只有 1 行。
所以,我的问题是如何最终使用 67 个字节而不是 33 个字节。
数据文件大小正确,我尝试插入 100、1000 和 10000 条记录。大小始终为 67 字节。
【问题讨论】:
标签: cassandra