Q
RocksDB
5
A
cevap
2
Sayımı tam olarak almanın bir yolu yoktur. Ancak son zamanlarda piyasaya sürülen kayalar 3.4'te, anahtarlar için bir tahminde bulunmak için bir yol ortaya koyuyor, bunu deneyebilirsiniz.
6
Codewisely, bir rocksdb saklanan anahtarların tahmini sayısını elde etmek için db->GetProperty("rocksdb.estimate-num-keys", &num)
kullanabilirsiniz.
Diğer bir seçenek, sonuçların dosya başına olmasına rağmen, --show_properties
argümanı ile giriş sayısını almak için sst_dump
aracını kullanmaktır.
sst_dump --file=/tmp/rocksdbtest-691931916/dbbench --show_properties --command=none
Ve burada örnek çıktısı var: Örneğin, aşağıdaki komutu belirtilen rocksdb dizin altında her SST dosyasının özelliklerini gösterecektir
Process /tmp/rocksdbtest-691931916/dbbench/000005.sst
Sst file format: block-based
Table Properties:
------------------------------
# data blocks: 845
# entries: 27857
raw key size: 668568
raw average key size: 24.000000
raw value size: 2785700
raw average value size: 100.000000
data block size: 3381885
index block size: 28473
filter block size: 0
(estimated) table size: 3410358
filter policy name: N/A
# deleted keys: 0
Process /tmp/rocksdbtest-691931916/dbbench/000008.sst
Sst file format: block-based
Table Properties:
------------------------------
# data blocks: 845
# entries: 27880
raw key size: 669120
...
bazı kabuk komutları ile birleştirin, sen mümkün olacak toplam başvuru numarası almak için:
sst_dump --file=/tmp/rocksdbtest-691931916/dbbench --show_properties --command=none | grep entries | cut -c 14- | awk '{x+=$0}END{print "total number of entries: " x}'
Ve bu şu çıktıyı oluşturur:
total number of entries: 111507