企业内部网站建设教程,我的家乡网页设计报告,江西博网科技发展有限公司,东莞常平粤海水务基于内存池的 简单高效的数据库 SDK简介 下载地址#xff1a;
https://gitee.com/tankaishuai/powerful_sdks/tree/master/shm_alloc_db_heap shm_alloc_db_heap 是一个基于内存池实现的简单高效的文件型数据存储引擎#xff0c;利用它可以轻松地像访问内存块一样读、写、增…基于内存池的 简单高效的数据库 SDK简介 下载地址
https://gitee.com/tankaishuai/powerful_sdks/tree/master/shm_alloc_db_heap shm_alloc_db_heap 是一个基于内存池实现的简单高效的文件型数据存储引擎利用它可以轻松地像访问内存块一样读、写、增、删、改、查、任意自定义记录于磁盘文件中。除此之外还提供了数据库碎片整理、堆破坏有效性检测等实用功能。特别适合用作数据存储类应用之中。 以下简单讲解下常用的API
1shm_struct* shm_open(unsigned int shm_size, const char *file, int keep);
创建/打开一个数据库连接成功返回连接句柄失败返回 NULL。
参数 shm_size 初始化预分配数据库大小建议取 1M 左右。 file: 数据库文件存储路径。 keep: 是否打开一个现有数据库。如果设为 0 将完全新建数据库结构。 2void* shm_alloc(shm_struct* shm_head, int size); 插入一条数据库记录。 成功返回记录指针失败返回 NULL。 参数 size: 待插入的记录字节数。 注意该接口在数据库已满时不会自动增长扩容如果需要让数据库自动增长扩容需使用以下高级接口 void* shm_map_alloc(shm_struct** shm_head_ptr, int size, int* allow_remap); 初始化 int allow_remap 0 并传入 allow_remap 给第三个参数即可。 3void* shm_realloc(shm_struct* shm_head, void* ptr, int size); 重新调整数据库中记录项的字节大小。成功返回记录指针失败返回 NULL。 参数 ptr: 待调整的记录指针。 size: 记录需要的新的字节数。 4void shm_free(shm_struct* shm_head, void* ptr); 删除一条记录。 参数 ptr: 待删除的记录指针。 5int shm_list(shm_struct* shm_head, shm_pfn_t blk_pfn, shm_pfn_t free_pfn, void *u); 遍历数据库中的所有记录。成功返回 0 失败返回 错误码。 参数 blk_pfn: 回调函数。其具有如下形式 int (*shm_pfn_t)(shm_struct* shm_head, void* ptr, unsigned int size, void *u); 返回 0 继续返回其他值则终止遍历。 free_pfn: 一般传 NULL。 u: 自定义数据。该参数直接透传给回调函数使用。 6void shm_close(shm_struct** shm_head_ptr, int defrag); 关闭数据库连接。 参数 defrag: 是否进行数据库碎片整理。 使用示例 编译并链接 shm_alloc_db_heap32.dll 32位或 shm_alloc_db_heap64.dll 64位即可。