python中读写LMDB数据库[通俗易懂]

python中读写LMDB数据库[通俗易懂]转自原文:https://blog.csdn.net/dcrmg/article/details/79144507LMDB的全称是LightningMemory-MappedDatabase(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件:LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

转自原文:https://blog.csdn.net/dcrmg/article/details/79144507
LMDB的全称是Lightning Memory-Mapped Database(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件
在这里插入图片描述
LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。

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

python中使用lmdb: linux中,可以使用指令‘pip install lmdb’ 安装lmdb包。

1. 生成一个空的lmdb数据库文件
# -*- coding: utf-8 -*-
import lmdb
 
# 如果train文件夹下没有data.mbd或lock.mdb文件,则会生成一个空的,如果有,不会覆盖
# map_size定义最大储存容量,单位是kb,以下定义1TB容量
env = lmdb.open("./train",map_size=1099511627776)
env.close()
2. LMDB数据的添加、修改、删除
# -*- coding: utf-8 -*-
import lmdb
 
# map_size定义最大储存容量,单位是kb,以下定义1TB容量
env = lmdb.open("./train", map_size=1099511627776)
 
txn = env.begin(write=True)
 
# 添加数据和键值
txn.put(key = '1', value = 'aaa')
txn.put(key = '2', value = 'bbb')
txn.put(key = '3', value = 'ccc')
 
# 通过键值删除数据
txn.delete(key = '1')
 
# 修改数据
txn.put(key = '3', value = 'ddd')
 
# 通过commit()函数提交更改
txn.commit()
env.close()
3. 查询lmdb数据库内容
# -*- coding: utf-8 -*-
import lmdb
 
env = lmdb.open("./train")
 
# 参数write设置为True才可以写入
txn = env.begin(write=True)
############################################添加、修改、删除数据
 
# 添加数据和键值
txn.put(key = '1', value = 'aaa')
txn.put(key = '2', value = 'bbb')
txn.put(key = '3', value = 'ccc')
 
# 通过键值删除数据
txn.delete(key = '1')
 
# 修改数据
txn.put(key = '3', value = 'ddd')
 
# 通过commit()函数提交更改
txn.commit()
############################################查询lmdb数据
txn = env.begin()
 
# get函数通过键值查询数据
print txn.get(str(2))
 
# 通过cursor()遍历所有数据和键值
for key, value in txn.cursor():
    print (key, value)
    
############################################
 
 
env.close()
4. 读取已有.mdb文件内容
# -*- coding: utf-8 -*-
import lmdb
 
env_db = lmdb.Environment('trainC')
# env_db = lmdb.open("./trainC")
 
txn = env_db.begin()
 
# get函数通过键值查询数据,如果要查询的键值没有对应数据,则输出None
print txn.get(str(200))
 
for key, value in txn.cursor():  #遍历
    print (key, value)
 
env_db.close()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187976.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机最小系统的c语言,51单片机最小系统「建议收藏」

    51单片机最小系统的c语言,51单片机最小系统「建议收藏」本文内容以中心网站发布的“最小系统图片”为例进行讲解。1、为什么要讲单片机最小系统图1(51芯片+晶振+复位)=最小系统因为单片机的应用领域极为广泛,以单片机为核心的电路千奇百怪,而单片机最小系统是最基本的、也是小的不能再省略掉任何部分的系统了。尽管这样小了,但只要掌握它,就能设计出丰富多彩的电路来。2、什么是单片机最小系统很简单,单片机最小系统就是一块单片机芯片+晶振电路+复位电路,如图1所…

    2022年6月23日
    16
  • windows7系统 您的账户已被停用。请向系统管理员咨询

    windows7系统 您的账户已被停用。请向系统管理员咨询问题细节描述:前几天好像是想换个用户桌面,换个用户桌面,首先把Administrator用户给禁用,然后把现在使用的用户名给删除。重启电脑,结果进不去了,显示这个错误提示:您的账户已被停用。请向系统管理员咨询解决办法:1.首先重启–(正常启动)2.按F8–(这个大家都知道-开机选项)3.选择安全模式–(注意:不是带命令的安全模式,是安全模式。F8第

    2022年10月30日
    0
  • Android操作系统架构,分为4个主要功能层_Android系统优化

    Android操作系统架构,分为4个主要功能层_Android系统优化Android操作系统架构Android操作系统整体应用架构Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层

    2022年8月5日
    39
  • excel变成xml格式_XML文件

    excel变成xml格式_XML文件最近做了一个小工具,可以将XML和Excel之前互转。里面用到的XML读写库是tinyxml,在Excel2010上运行,请先确保装了Excel,而不是WPS。代码写的比较挫,一大坨,最近忙也懒得去做优化了。github地址:XML与Excel互转工具目前只支持ANSI格式的Excel文件与ANSI格式的XML文件互转。由于在写的时候,里面的存储方式都是CString,默认为ANS

    2022年8月22日
    4
  • Log4j2 Demos(基础/时间&大小回滚/定期删除/日志脱敏)「建议收藏」

    Log4j2 Demos(基础/时间&大小回滚/定期删除/日志脱敏)「建议收藏」前言本章主要介绍Log4j2的几个例子与使用场景。Log4j2DemosLog4j2Demos(普通设置)<?xmlversion="1.0"encoding="UTF-8"?><Configurationstatus="debug&quo

    2022年5月7日
    55
  • 已刻游戏目录

    已刻游戏目录单机游戏1.生化奇兵1、2、32.蔷薇少女格斗3.全女格斗2.04.劲乐团5.魔兽争霸6.生化危机1-6启示录7.MaxPayne2+38.寄生前夜9.恐龙危机1、210.梦幻模拟战4、511.PS模拟器:北欧女神、放浪冒险谭、寄生前夜、寂静岭1、异度装甲、月下夜想曲、古惑狼1-3、封神演义、苍魔灯、鬼屋魔影、武藏传12.FC模拟器13.MD模拟器14.杀手4…

    2022年5月8日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号