LMDB简介
【LMDB】Lightning Memory-Mapped Database,快如闪电的内存映射数据库。它的文件结构简单,包含一个数据文件和一个锁文件。
【优势】
- LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可
- 让系统访问大量小文件的开销很大,而LMDB使用内存映射的方式访问文件,使文件内寻址的开销非常小,使用指针运算就能实现
- 数据库单文件还能减少数据集复制/传输过程的开销
- LMDB是一款开源高速快速的内存映射数据库,由C语言编写,基于B+树索引,支持MVCC事物处理
- 它不是一个需要独立运行的数据库管理进程,只要在需要访问lmdb数据库的代码里引用lmdb库,给出数据库所在目录,就能方便地实现读写lmdb数据库
相关资料
函数说明
int mdb_env_create(MDB_env **env); //为env分配内存,成功返回0
int mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode);
- path为数据文件所在目录
- flags
- MDB_FIXEDMAP:map区域使用固定地址
- MDB_NOSUBDIR
// 笔记:创建新数据库E(mdb_env_set_maxdbs(env, 4));E(mdb_env_open(env, "D:/Cpp3D/[3]LMDB/db", MDB_FIXEDMAP /*|MDB_NOSYNC*/, 0664));E(mdb_dbi_open(txn, "newDb", MDB_CREATE, &dbi));
