什么是LMDB闪电记忆映射数据库

摘要:
LightningMemory-MappedDatabase是一个软件库,它以键值存储的形式提供高性能的嵌入式事务数据库。LMDB是用C语言编写的,具有多种编程语言的API绑定。LMDB不是关系数据库,它是严格的键值存储等的BerkeleyDB和dbm。LMDB数据库一次只能有一个编写器,但与许多类似的键值数据库不同,写事务不会阻止读者,也不会阻止编写器。此外,LMDB不需要事务日志,因为它通过设计本身维护数据完整性。LMDB内部使用B+树数据结构。

LightningMemory-MappedDatabase(LMDB)是一个软件库,它以键值存储的形式提供高性能的嵌入式事务数据库。LMDB是用C语言编写的,具有多种编程语言的API绑定。LMDB将任意键/数据对存储为字节数组,具有基于范围的搜索功能,支持单个键的多个数据项,并具有在数据库末尾附加记录的特殊模式(MDB_APPEND),可提供显着的写入性能比其他同类商店增加。LMDB不是关系数据库,它是严格的键值存储等的BerkeleyDB和dbm。

什么是LMDB闪电记忆映射数据库第1张

LMDB也可以使用同时在多线程或多处理环境中,有读性能通过设计线性缩放。LMDB数据库一次只能有一个编写器,但与许多类似的键值数据库不同,写事务不会阻止读者,也不会阻止编写器。LMDB也很不寻常,因为同一系统上的多个应用程序可以同时打开并使用相同的LMDB存储,作为扩展性能的手段。此外,LMDB不需要事务日志(从而通过不需要两次写入数据来提高写入性能),因为它通过设计本身维护数据完整性。

什么是LMDB闪电记忆映射数据库第2张

LMDB内部使用B+树数据结构。其设计效率和占用空间小,同时具有提供良好写入性能的意外副作用。LMDB有一个类似于BerkeleyDB和dbm的API。LMDB将计算机的内存视为单个地址空间,使用具有写时复制语义的共享内存在多个进程或线程之间共享(历史上称为单级存储)。

什么是LMDB闪电记忆映射数据库第3张

​  由于大多数以前的现代计算体系结构具有32位内存地址空间限制,这对使用此类技术的任何数据库的大小施加了4GB的硬限制,因此将数据库直接映射到单级存储的技术的有效性严格限制。然而,今天的64位处理器现在主要实现48位地址空间,允许访问47位地址或128TB的数据库大小,使得使用共享内存的数据库在实际应用程序中再次有用。(欢迎转载分享)

免责声明:文章转载自《什么是LMDB闪电记忆映射数据库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python3常用标准库Redis学习-数据类型(二)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

plsql developer远程连接oracle数据库

问题描述: 使用win7(32位)上pl/sql developer 9.0.6远程连接Linux(64位)的oracle 10.2.0数据库。window上使用的oracle客户端是instantclient-basic-win32-10.2.0.3-20061115及instantclient-sqlplus-win32-10.2.0.3-200611...

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

1、现象、问题描述 客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”;检查对应的数据库服务器,日志显示“Autogrow of file '某数据库日志文件' in database '某数据库' was cancelled by user or timed out after 2391 milliseconds. Use ALTER DAT...

文本框根据拼音自动匹配提示

    之前有提到过用jquery来实现文本框的自动匹配(http://hi.baidu.com/yunanwu/item/2a5aa13b1607fa26b3c0c522 ) 发现只能用汉字的匹配,又觉得吧平时在用百度谷歌的时候,输入拼音的时候也可以直接提示,就琢磨着自己实现一下这个功能(发现自己现在看到网页的功能,都要联想着自己去写了)。 关于拼音的...

Hibernate-入门教程

首先了解hibernate的目录结构 . +lib antlr.jar cglib-full.jar asm.jar asm-attrs.jars commons-collections.jar commons-logging.jar ehcache.jar hibernate3.jar jta....

mysql配置utf8_mb4

http://blog.csdn.net/u013145194/article/details/51527389 注:以上是转载,但我实际使用的时候,修改配置文件重启数据库,然后修改表的类型即可 20180628补充 我现在使用的是ucloud的云数据库,发现在控制台无论怎么set修改数据库的类型,表类型,字段类型都是不行的。 需要修改云数据库的配置文件c...

解除SQL SERVER 数据库被单个用户独占的问题

注意将dbname改为单个用户的数据库名--第一步 DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('dbname'); EXEC(@SQL); --第...