我刚刚从RocksDB FAQ 中发现了一些有趣的信息。(RocksDB 是一个 KV 存储。)
以下是一些相关的摘录。
问:列族有什么用?
A:使用列族最常见的原因:(1)在数据的不同部分使用不同的compaction setting、comparator、compression type、merge operators或compaction filter;(2) drop一个列族来删除它的数据;(3) 一个列族存储元数据,另一个列族存储数据。
Q:多列族和多rocksdb数据库有什么区别?
答:主要区别在于备份、原子写入和写入性能。使用多个数据库的优点:数据库是备份或检查点的单位。将数据库复制到另一台主机比列族更容易。使用多个列族的优点: (1) 写批处理在一个数据库上跨多个列族是原子的。您无法使用多个 RocksDB 数据库来实现这一点。(2) 如果您向 WAL 发出同步写入,过多的数据库可能会损害性能。
问:我有不同的键位。我应该用前缀分隔它们,还是使用不同的列族?
答:如果每个键空间都相当大,最好将它们放在不同的列族中。如果可以小,那么就应该考虑将多个键空间打包成一个列族,避免维护太多列族的麻烦。
归档时间: |
|
查看次数: |
5469 次 |
最近记录: |