python读写LMDB文件的方法

  

LMDB的全称是闪电内存映射数据库(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件:

  

 python读写LMDB文件的方法

  

LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。

  

让系统访问大量小文件的开销很大,而LMDB使用内存映射的方式访问文件,使得文件内寻址的开销非常小,使用指针运算就能实现。数据库单文件还能减少数据集复制/传输过程的开销。

  

在python中使用lmdb: linux中,可以使用指令的pip安装lmdb安装lmdb包。

  

1。生成一个空的lmdb数据库文件

        # - * -编码:utf - 8 - *   进口lmdb      #如果火车文件夹下没有data.mbd或lock.mdb文件,则会生成一个空的,如果有,不会覆盖   # map_size定义最大储存容量,单位是kb,以下定义1 tb容量   env=lmdb.open(“。/火车”,map_size=1099511627776)   env.close ()      

2。LMDB数据的添加,修改,删除

        # - * -编码:utf - 8 - *   进口lmdb      # map_size定义最大储存容量,单位是kb,以下定义1 tb容量   env=lmdb.open (”。/火车”,map_size=1099511627776)      时候=env.begin(写=True)      #添加数据和键值   时候。把(键=' 1 ',值=' https://www.yisu.com/zixun/aaa ')   时候。把(键=' 2 ',值=' https://www.yisu.com/zixun/bbb ')   时候。把(关键=' 3 ',value=' https://www.yisu.com/zixun/ccc ')      #通过键值删除数据   txn.delete(关键=' 1 ')      #修改数据   时候。把(关键=' 3 ',value=' https://www.yisu.com/zixun/ddd ')      #通过commit()函数提交更改   txn.commit ()   env.close ()      

3。查询lmdb数据库内容

        # - * -编码:utf - 8 - *   进口lmdb      env=lmdb.open(“/火车。”)      #参数写设置为真实才可以写入   时候=env.begin(写=True)   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #添加,修改,删除数据      #添加数据和键值   时候。把(键=' 1 ',值=' https://www.yisu.com/zixun/aaa ')   时候。把(键=' 2 ',值=' https://www.yisu.com/zixun/bbb ')   时候。把(关键=' 3 ',value=' https://www.yisu.com/zixun/ccc ')      #通过键值删除数据   txn.delete(关键=' 1 ')      #修改数据   时候。把(关键=' 3 ',value=' https://www.yisu.com/zixun/ddd ')      #通过commit()函数提交更改   txn.commit ()   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #查询lmdb数据   时候=env.begin ()      #获取函数通过键值查询数据   打印txn.get (str (2))      #通过游标()遍历所有数据和键值   关键,价值txn.cursor ():   (打印键,值)      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #      env.close ()      

4。读取已有. mdb文件内容

        # - * -编码:utf - 8 - *   进口lmdb      env_db=lmdb.Environment (“trainC”)   # env_db=lmdb.open (“。/trainC”)      时候=env_db.begin ()      #获取函数通过键值查询数据,如果要查询的键值没有对应数据,则输出没有   打印txn.get (str (200))      关键,txn.cursor价值():#遍历   (打印键,值)      env_db.close ()      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python读写LMDB文件的方法