一个项目上需要存储大量门禁卡数据并作检索(三万张卡)
每个卡为十位十进制数。
用spi nor flash做外置存储。。现在发现最坏情况下,三万张卡检索一次需要4-6秒钟。。请问有啥优化的办法能提高到一秒以内。。。
谢谢
1.SPI速度
2.SPI DMA + 双缓存 + 乒乓模式
3.找到数据中的一个属性( 比如开卡日期 用户名首字母)或者数据加入一个头 NorFlash按其分区 减少匹配的数据量
方式2 比较麻烦 依赖硬件
方式3 逻辑性强 数据分区 按你的需求 分4个区以上可以实现
不知道还有没有好的方法 这是我目前对于大数据量的处理方式
如果大家有好的方法 也告知我一下
感谢,
1, spi速度, 已经跑50M了。。芯片最大值支持50M
2, 之前考虑用flashdb, 不过感觉超过2K的数据好像不适合,速度会变慢非常多。
我现在用的是littlefs,想利用一下lfs的掉电保护。。。 您指的卡数据加一个头是啥意思?能具体点嘛。
您指的是按照卡十位卡数据的某几位来做flash分区的索引吗? 十位的数据有一百亿条。。感觉有点大.
目前的一个想法,用哈希函数把卡均匀地分布在100个文件里,然后单独查每个文件,不过没想出来这个哈希函数怎么算..
不知道各位过来人的经验。。
谢谢
@yqzq101 我更新了回答 你再看看 找到数据中的一个属性 比如开卡日期 用户名首字母 等等
@yqzq101 你的目的是不是就是为了1秒钟之内匹配上数据?
数据里面就只有 10位卡号,有效期(大概率相同)..
我加一个属性存进去,如何只通过10位卡号来快速索引呢..除非这个属性和卡号有相关性..
是的,就是为了提速。。