【发布时间】:2019-03-01 09:13:07
【问题描述】:
在调整 LevelDB 存储的插入时要考虑的首要因素是什么?
我在表单中插入了 500M+ 条记录:
- key="rs1234576543" 非常可预测的结构。 rs
- value="1,20000,A,C" 字符串可以更长,但通常约为 40 个字符
- 键是唯一的
- 密钥插入顺序是随机的
使用 python plyvel 进入 LevelDB 存储,随着记录数量的增加,速度会急剧下降。我想这是意料之中的,但我是否可以考虑一些调整措施以使其更好地扩展?
示例代码:
import plyvel
BATCHSIZE = 1000000
db = plyvel.DB('/tmp/lvldbSNP151/', create_if_missing=True)
wb = db.write_batch()
# items not in any key order
for key, value in DBSNPfile:
wb.put(key,value)
if i%BATCHSIZE==0:
wb.write()
wb.write()
我尝试了各种批量大小,这有点帮助,但我希望还有一些我错过的东西。例如,可以利用知道键(或值)的最大长度吗?
【问题讨论】:
-
看起来按键排序有很大的不同