【发布时间】:2021-07-11 22:33:25
【问题描述】:
有没有办法知道存储在列族中的所有 KV 的大小?
【问题讨论】:
标签: rocksdb column-family
有没有办法知道存储在列族中的所有 KV 的大小?
【问题讨论】:
标签: rocksdb column-family
对于 API,您可以使用:GetApproximateSizes()。
如果你只是想检查,你可以检查 RocksDB 日志,它有每个列族Compaction Stats,每个级别的 SST 文件大小。
它不是报告列族大小,但是如果您对写入的字节感兴趣,有一个统计报告:rocksdb.bytes.written,您可以通过设置statistics 获得统计信息,例如:
options.statistics = CreateDBStatistics()
【讨论】:
GetApproximateSizes()? 具体来说,如果我想要整个列的大小,我应该使用什么作为Range?
如果你想知道一个列族下所有 SST 文件的总大小,更好的方法是通过GetIntProperty()。在你的情况下,你想传入kTotalSstFileSize。
bool ok = db_->GetIntProperty(DB::Properties::kTotalSstFilesSize, &sst_size);
如果您只关心最新版本的 SST 文件,那么您应该改用 kTotalLiveSstFileSize。
【讨论】: