Это ожидаемое поведение в rocksdb. Обратите внимание, что это свойство estimate-num-keys
, что означает, что оно даст вам только приблизительную (не точную) оценку количества ключей, присутствующих в БД. Возможно, вам придется запустить full compaction
для семейства столбцов, чтобы получить точное количество имеющихся ключей.
Цитирование из WIKI,
Q: Почему GetIntProperty может возвращать только приблизительное количество ключей в базе данных RocksDB?
A: Получение точного числа Ключи в любых базах данных LSM, таких как RocksDB, представляют собой сложную проблему, так как они имеют дублирующиеся ключи и записи удаления (например, надгробные камни), которые потребуют полного уплотнения для получения точного количества ключей. Кроме того, если база данных RocksDB содержит операторы слияния, это также сделает приблизительное число ключей менее точным.
Вы также можете проверить параметрcksdb - inplace_update_support
, который обновит ключ, если он существует в самой memtable вместо того, чтобы писать ее снова.