考虑调整LevelDB存储的插入时要考虑的最重要因素是什么?
我正在以以下形式插入5亿多条记录:
1. key="rs1234576543",非常可预测的结构。rs<1+数字> 2. value="1,20000,A,C",字符串可以更长,但通常为~40个字符 3. 键是唯一的 4. 键插入顺序是随机的
使用Python Plyvel将其插入LevelDB存储,并发现随着记录数量的增加,速度急剧下降。我猜这是可以预料的,但是否有调整措施可以使其更好地扩展?
示例代码:
我尝试过不同的批次大小,这有一定帮助,但我希望还有其他方法。例如,是否可以利用键(或值)的最大长度?"最初的回答"
我正在以以下形式插入5亿多条记录:
1. key="rs1234576543",非常可预测的结构。rs<1+数字> 2. value="1,20000,A,C",字符串可以更长,但通常为~40个字符 3. 键是唯一的 4. 键插入顺序是随机的
使用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()
我尝试过不同的批次大小,这有一定帮助,但我希望还有其他方法。例如,是否可以利用键(或值)的最大长度?"最初的回答"