优化 BerkeleyDB JE 数据库
Posted
技术标签:
【中文标题】优化 BerkeleyDB JE 数据库【英文标题】:Optimizing a BerkeleyDB JE Database 【发布时间】:2010-11-14 17:50:23 【问题描述】:我计划在 BerkeleyDB JE 数据库中插入大量唯一键 (~3E9)。
键的长度是固定的(~10 字节),但值的长度是可变的。数据库不会是事务性的。
您建议EnvironmentConfig 和DatabaseConfig 使用哪些参数来优化我的数据库的大小和速度?
非常感谢,
皮埃尔
【问题讨论】:
【参考方案1】:好的,我找到了使用工具 com.sleepycat.je.util.DbCacheSize 打包到 berkeleyDB-JE 中的解决方案
java -cp je-4.0.103.jar com.sleepycat.je.util.DbCacheSize -records 3000000000 -key 8
Inputs: records=3000000000 keySize=8 dataSize=-1 nodeMax=128 binMax=128 density=80% overhead=10%
=== Cache Sizing Summary ===
Cache Size Btree Size Description
--------------- --------------- -----------
206,574,616,257 185,917,154,632 Minimum, internal nodes only
231,821,163,884 208,639,047,496 Maximum, internal nodes only
To get leaf node sizing specify -data
=== Memory Usage by Btree Level ===
Minimum Bytes Maximum Bytes Nodes Level
--------------- --------------- ---------- -----
184,101,562,500 206,601,562,500 29,296,875 1
1,797,864,968 2,017,591,304 286,102 2
17,551,212 19,696,236 2,793 3
169,668 190,404 27 4
6,284 7,052 1 5
【讨论】:
以上是关于优化 BerkeleyDB JE 数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 berkeleydb je“从 xz WHERE xz.a > value 中选择 COUNT(*)”