如何设计一个C语言面向结构体的内存数据库

内存数据库

一般所谓内存数据库,是指能够与应用运行在同一个进程内的数据库,也就是说能够被嵌入到进程内运行的数据库。

比较著名的内存数据库软件,例如,Sqlite;以及新生代的NOSql key-value数据库bdb(Berkeley DB)lmdb(Lighning Memory-Mapped Database)等。

数据库一般功能

  • 对增删改查CRUD操作的支持
  • 高效、丰富的索引,例如,对于Blob数据以及JSON数据的支持
  • 事务特性
  • 持久化要求

我们的需求

  • 能够直接操作结构体内存,避免数据库操作间的重复内存拷贝,要求内存数据库要面向结构体设计
  • 能够完成增、删、改、查CRUD等数据库常规操作
  • 提供高效、丰富的索引能力
  • 因为是受限使用场景,可以接受其它方面数据库功能的弱化

深入分析需求

我们使用内存数据库的场景相对小众,因为能够直接操作结构体内存,虽然避免传统的在内存数据库接口层的内存隔离拷贝,但,因为内存对使用者直接曝露,应用修改内存后,特别是涉及到索引字段的修改时,必须特殊调用UpdateIndex(...)接口,以保证数据库内信息的一致性。

但,特别地,如果不涉及索引字段修改,只

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值