|
本帖最后由 sunnydragon 于 2022-1-25 20:08 编辑
FlashDB 是什么?
FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命。 - 键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。KVDB 操作简洁,可扩展性强。
- 时序数据库 :时间序列数据库 (Time Series Database , 简称 TSDB),它将数据按照 时间顺序存储 。TSDB 数据具有时间戳,数据存储量大,插入及查询性能高。
更多详见文档中心:http://armink.gitee.io/flashdb/#/zh-cn/
新版介绍
从去年 10 月发布 V1.0 版本至今正好一年的时间,FlashDB 已经被应用于工业、医疗、穿戴等各种嵌入式设备中,非常适合设备参数存储,操作日志记录,传感器数据保存,等众多存储场景。
V1.1 是一个功能完善的版本,先来一起看下更新日志:
- 新增 文件模式,数据库可以直接以文件形式进行存储
- 新增 ESP8266 平台 demo
- 新增 linux 平台 demo
- 新增 fdb_kvdb_deinit & fdb_tsdb_deinit 函数
- 完善 时序数据库时间处理逻辑,当前时间比时序数据库上次存储记录更早时,丢弃该记录
- 修复 一些 BUG
新版解读
V1.1 版本最大的更新就是新增了文件存储模式。相比于 V1.0 默认的 FAL 存储模式,文件模式更加的灵活。使用 FAL 时,需要提前分配好分区表,这对于后期修改不太方便。
而有了文件模式后,数据库可以保存至任意位置,不想用也可以移除,更加接近于常见的数据库模式。简单对比下优缺点
| FAL 模式 | 文件模式 | 性能 | 更快,详见 首页测试数据 | 稍慢,低于 FAL 模式 10 倍以上 | 灵活性 | 较差,需要提前分配分区表 | 较好,数据库可以在任意位置存储 | 资源占用 | 较小,无其他依赖 | 较高,需要文件系统的支持,并且依赖 Libc/POSIX 文件系统接口 |
所以,大家可以结合自己的需要,在数据库初始化阶段,选择性决定让数据库存储在文件系统或者是 FAL 分区上。
另外,V1.1 的更新也带来的更多平台的支持。ESP8266 虽然也有类似的 NVS 机制,但依然有热心网友将 FlashDB 适配上去,同时也可以用于 ESP32 平台。
除此之外,新增的 Linux 平台,也让 Linux 平台有了更加易于集成的超轻量级数据库的选择。
V2.0 展望
未来 FlashDB 会始终专注在高性能与易用性两个方向上。
KVDB 初始化及 GC 速度会重点,TSDB 也会支持缓存机制。从 API 上,TSDB 会支持逆序迭代器,统一 KVDB 与 TSDB 迭代器 API ,让用户使用更加便捷。
也欢迎大家提出更多想法和建议……
下载
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
有一句段子是这样说的,身家过亿的只关心自己的身体,身家千万的,在担心传承,勉强糊口度日才天天看国际新闻,关心国家大事。
|