Mysql RocksDB vs Cassandra

Mysql RocksDB vs Cassandra,mysql,cassandra,nosql,mariadb,rocksdb,Mysql,Cassandra,Nosql,Mariadb,Rocksdb,MyRocks(MySql)和Cassandra都使用LSM架构来存储数据。所以我在MySql中使用MyRocks作为存储引擎填充了大约500万行,在Cassandra中也是如此。在Cassandra中,它只需要1.7GB的磁盘空间,而在MyRocks作为存储引擎的MySql中,它需要19GB的磁盘空间 我错过什么了吗?两者都使用相同的LSM机制。但为什么它们的数据大小不同呢 更新: 我想这和文本栏有关。我的表结构是(bigint、bigint、varchar、text) 行数:30万 在My

MyRocks(MySql)和Cassandra都使用LSM架构来存储数据。所以我在MySql中使用MyRocks作为存储引擎填充了大约500万行,在Cassandra中也是如此。在Cassandra中,它只需要1.7GB的磁盘空间,而在MyRocks作为存储引擎的MySql中,它需要19GB的磁盘空间

我错过什么了吗?两者都使用相同的LSM机制。但为什么它们的数据大小不同呢

更新:

我想这和文本栏有关。我的表结构是(bigint、bigint、varchar、text)

  • 行数:30万
  • 在MyRocks中,数据大小为185MB
  • 在卡桑德拉-13MB
但如果我删除文本列,则:

  • MyRocks-216MB
  • 卡桑德拉-11MB

你知道这种行为吗?

在MyRocks上不是100%。但Cassandra是LSM,也是键值存储。这意味着,如果列为“null”,它将不会存储在磁盘上。传统上,RDBMS仍然会消耗一些空间(varchars、空字符指针等),因此这可能是您丢失空间的原因

此外,cassandra压缩数据。尝试:
altermytable WITH compression={'enabled':false}

上述行为的原因是rocksdb_块大小设置为4kb。由于较小的数据块,压缩器发现要压缩的数据量较小。将其设置为16kb解决了该问题。现在我得到了与cassandra相似的数据大小。

投票结束了这个问题,因为它更适合于我想这会引起您的兴趣:是的,但我已经填充了所有列的值,但仍然没有差异。以及对上述问题的更新。我想这和文本栏有关。我的表结构是(bigint、bigint、varchar、text)。已填充行数:MyRocks中现在有300万行,Cassandra中的大小为185MB-13MB。但是如果我删除文本列,那么MyRocks-216MB Cassandra-11MB您知道这种行为吗?文本列的平均大小是多少?13MB/3lakh=43字节/行--没有空间容纳太多文本@另外,AravindTyson cassandra实际上压缩数据(作为提示)。如果您
altermytable WITH compression={enabled:false}