FlashDB学习应用笔记一
- FlashDB简介
- 数据库模式
- 应用场景
- 数据库特点
- 性能及资源占用(来自FlashDB官方)
- TSDB 性能测试1(nor flash W25Q64)
- TSDB性能测试2 (STM32F2 onChip flash)
- 资源占用(STM32F4 IAR8.20)
- 官方链接
FlashDB简介
FlashDB是一款特别适用于嵌入式系统的数据库,支持系统的片上Flash和片外Flash,具有极强的可靠性。资源占用极底,并加入磨损平衡控制。
数据库模式
- 键值对数据库KVDB:键值对数据库是一种关系型数据库,将数据存储为价值对key-value集合,键值key作为数据的唯一标签。
- 时序数据库TSDB:基于时间存储的数据库,按照系统时间顺序进行存储,时间戳作为数据的唯一标签。
应用场景
- 键值数据库:
- 系统参数的保存,比如:开机次数等
- 用户配置信息的存储,比如:用户名和密码。
- 小的数量的存储,比如bootloader和app。
- 时序数据库:
-动态记录传感器的数据,比如:温度,湿度,速度等。
-记录系统运行日志,比如:用户登录信息,系统告警信息等。
数据库特点
- 磨损平衡,延长Flash寿命。
- 多个分区,多个实例。
- 支持掉电保护功能。
- 支持每条TSDB可修改记录状态。
- 支持KV增量升级,产品固件升级有,KVDB内容也支持自动升级。
- 支持字符串和blob两种KV类型,方面用户操作。
- 内存占用几乎为0。
性能及资源占用(来自FlashDB官方)
TSDB 性能测试1(nor flash W25Q64)
msh />tsl bench
Append 1250 TSL in 5 seconds, average: 250.00 tsl/S, 4.00 ms/per
Query total spent 2218 (ms) for 1251 TSL, min 1, max 2, average: 1.77 ms/per
插入平均:4ms,查询平均:1.8ms
TSDB性能测试2 (STM32F2 onChip flash)
msh />tsl bench
Append 13421 TSL in 5 seconds, average: 2684.20 tsl/S, 0.37 ms/per
Query total spent 1475 (ms) for 13422 TSL, min 0, max 1, average: 0.11 ms/per
插入平均:0.37秒, 查询平均:0.12ms
资源占用(STM32F4 IAR8.20)
Module ro code ro data rw data
------ ------- ------- -------
fdb.o 276 232 1
fdb_kvdb.o 4 584 356 1
fdb_tsdb.o 1 160 236
fdb_utils.o 418 1 024
上面是IAR的map的文件信息,课件FlashDB的资源占用非常低。
官方链接
链接: 进一步学习.