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()

python读取lmdb文件_python中读写LMDB数据库相关推荐

  1. python读取docx文件_Python应用 | 读写docx文件 (值得收藏的技能)

    字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...

  2. python读取txt文件_python实现读写txt文件的几种方法

    一.读写模式: w:向文件中写入内容,w会清空原来文本内容 a:向文件中追加内容 r:从文件中读取内容 wb:以二进制形式写入内容. rb:以二进制形式读文件内容 ab:以二进制形式追加内容 a+.r ...

  3. python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件

    1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt,  log,  json,  csv,  xml,  zip, tar, gz,  ra ...

  4. python读取写入文件_Python读取文件,写入文件,打开文件,删除文件,复制文件

    python读取写入文件 In this tutorial we are going to learn about Python File Operations such as python read ...

  5. Python读取指定文件夹中的所有图片并保存

    事先说明:本文所有灵感来源于博客python读取文件夹下所有图片 在复现的基础之上作了一些修改,加入了一些自己的心得体会: 改进: 1.原博客要求所读取文件夹与python文件在同一目录下,这里进行了 ...

  6. python 读取yml文件_python读取yaml配置文件

    什么是yaml 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大, 2.支持多种语言:p ...

  7. python读取yaml文件_python 怎么读取yaml文件

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language:另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件 ...

  8. python读取文件并存入mysql_1.python读取txt文件并插入到mysql数据库以及将py脚本文件打包成独立的exe程序...

    读取txt文件并插入到mysql数据库 该小脚本适用于每天生成日志等信息到txt文本,然后通过windows的计划任务定时去执行python脚本打包成的exe文件,并将txt中内容读取以及格式化后插入 ...

  9. python读取docx文件_Python 实现docx文件的读写操作

    我们在做一些数据统计或分析的时候,有时会接触到Execl 格式或者Word 格式的文件.Execl格式的数据提取和解析,我们在之前的文章分享过一些非常好用的Python第三方库,本文中主要介绍如何使用 ...

  10. python如何创建文件_python中创建文件、读取文件内容

    1.选择文件夹,单击右键,点击New -> Python file 2.命名好之后,如我命的就是创建文件. 3.文件命名好了以后,可以编辑代码 如: nf=open("pi_digit ...

最新文章

  1. 如何为你的博客文章自动添加版权信息?
  2. python面向对象进阶
  3. 算法 - KMP算法(字符串匹配)
  4. 前端重构实践(一) —— 性能优化
  5. java肯尼亚_对肯尼亚这个国家,你有什么好奇的?对它的第一印象是什么?
  6. Java代码页面显示报表_Web报表开发中使用快逸报表分页标签:显示第几页和共几页...
  7. 湖南高职高考计算机,20XX湖南高职对口高考常德市大联考计算机专业试卷(4月)[整理](8页)-原创力文档...
  8. C#实现所有CRC8,CRC16,CRC32校验算法
  9. java long 空判断_Long类型null判断带值判断,null必须写在最前面
  10. IDEA/Android Studio中替换(replace)快捷键
  11. 几何分布的期望和方差公式推导_GPR(高斯过程回归)详细推导
  12. GPRS附着,PDP激活失败
  13. 39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程
  14. 自己动手编写CSDN博客备份工具-blogspider源码下载(4)
  15. Log4j2高危漏洞CNVD-2021-95914分析复现修复
  16. Python3 创建文件夹
  17. 计算机网络-自顶向下方法-笔记【第2章-应用层】
  18. 计算机教师的人生格言,教师人生格言座右铭(精选70句)
  19. 20行代码爬取原神角色全图
  20. Python二十行代码实现hexo的md文件格式解析

热门文章

  1. 50个Windows软件的免费替代品
  2. cortana 无法使用_如何使用Cortana创建和编辑列表(并将它们与Wunderlist同步)
  3. android 7.1 默认壁纸拉伸问题
  4. MVP模式——Okhttp实现下载图片并带有进度 【Android Demo】
  5. mysql数据抽取_史上最简单的数据抽取
  6. edup无线网卡驱动安装linux,UBUNTU_15.0.4 usb无线网卡驱动安装方法
  7. java 读取文件 效率_JAVA读写文本文件的效率
  8. TIR透镜的设计 Matlab,用于DLP投影系统的自由曲面TIR准直透镜设计
  9. 小数分频器vhdl实现_使用VHDL进行分频器设计(含小数)
  10. 浙江学计算机怎么选课,新高考下浙江孩子应怎么选课(专业人士建议)