嵌入式技术论坛
直播中

lalajie

8年用户 1213经验值
擅长:模拟技术 存储技术
私信 关注
[问答]

请问rt-thread中有用flashdb保存参数的吗?为什么kv越多越慢呢?

307大家有在rt-thread中用flashdb保存参数的吗?为什么kv越多越慢呢?
由于设备参数太多,估计有2000—3000条。运行日志也需要保存下来。
所以我用了w25q32,采用flashdb来保存参数和日志。

但是实际使用中发现flashdb随着参数写入的增多,写入速度越来越慢,读取速度也越来越慢。
不知道大家遇到过没有,如何解决这个问题呢?或者有其他嵌入式好用的KV数据推荐吗?
1.png

回帖(2)

熊本熊

2023-9-3 10:40:14
为了实现磨损平衡,flashdb在查找与插入的逻辑中都会涉及到遍历思想,而随着写入次数的变多,遍历的次数就会变多,时间会相应变长。
题主可以尝试将参数分类,然后分成不同的表存入KVDB,同时每个表的容量不能太大。这样应该能有效减少时间。
举报

刘艳

2023-10-7 11:16:29
在RT-Thread中,确实有用于保存参数的flashdb模块。而kv越多越慢的问题可能是由于数据读写时的算法不够高效,造成查询速度下降。解决方法可以尝试优化算法,或使用更高效的数据结构来存储数据,比如哈希表。关于其他嵌入式KV数据的推荐,可以考虑使用LevelDB或SQLite等常用的嵌入式数据库。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分