簡體   English   中英

為什么LMDB數據庫占用的數據超過實際數據?

[英]Why LMDB database taking more than actual data size?

我在LMDB數據庫中放了大約11K鍵和值。 LMDB數據庫文件大小變為21Mb。

對於相同的數據,leveldb僅采用8Mb(具有快速壓縮)。

LMDB env info,

VERSION=3
format=bytevalue
type=btree
mapsize=1073741824
maxreaders=126
db_pagesize=4096

為了檢查LMDB文件大小的原因,我迭代了數據庫中的所有鍵和值。 所有鍵和值的總大小為10Mb。

但是文件的實際大小是21Mb。 剩余文件大小為11Mb(21Mb - 10Mb)用於什么目的??? !!

如果我在放置操作之前壓縮數據,只減少了2Mb

為什么LMDB數據庫文件大小超過實際數據大小?

有什么方法可以縮小它嗎?

數據庫比原始文件大,因為lmdb需要做一些bookeeping以保持數據排序。 此外,還有一個開銷,因為即使你的記錄(鍵+值)是1kb,lmdb也會分配一個固定大小的空間來存儲它們。 我不知道實際價值。 但總是可以預期這種開銷。

壓縮對小記錄不起作用。

lmdb不支持前綴或塊壓縮。 您最好的選擇是使用像有線網格一樣的鍵值存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM