嵌入式Linux或MTD闪存中的SQLite3

嵌入式Linux或MTD闪存中的SQLite3,linux,sqlite,embedded-linux,Linux,Sqlite,Embedded Linux,嵌入式系统采用M68K体系结构(基于MCF547x),采用colilo和linux内核2.6.10 它使用了MTD(内存型设备)和闪存(Spansion make)。 大约有32MB的数据需要管理(都是以记录的形式),可用内存为40MB,作为MTD分区(JFFS2文件系统)。 我想了解使用SQlite3(合并版本)时可能遇到的性能相关问题或任何其他内存相关问题 所谓内存相关问题,我指的是频繁的内存分区碎片整理操作(因为32MB的数据库几乎每秒都会被修改) 关于这一要求的任何经验/见解都将非常有用

嵌入式系统采用M68K体系结构(基于MCF547x),采用colilo和linux内核2.6.10 它使用了MTD(内存型设备)和闪存(Spansion make)。 大约有32MB的数据需要管理(都是以记录的形式),可用内存为40MB,作为MTD分区(JFFS2文件系统)。 我想了解使用SQlite3(合并版本)时可能遇到的性能相关问题或任何其他内存相关问题

所谓内存相关问题,我指的是频繁的内存分区碎片整理操作(因为32MB的数据库几乎每秒都会被修改)


关于这一要求的任何经验/见解都将非常有用。请分享您的经验,了解需要注意的事项。

每秒给MTD写信根本不是一个好主意。你很快就会得到坏扇区。尝试将sqlite文件保存在/tmp中。这将大大提高读/写操作的速度并延长MTD寿命。

分区NOR内存的每个擦除扇区有100k擦除周期(通常为128kB),因此如果应用程序每秒写入一次,则NOR寿命将显著缩短。UBIFS/YAFS/JFFS2可以提供帮助,但无法避免。

NOR闪存中的坏扇区不太可能发生。你是说/tmp是RAMFS还是JFFS2?。我们需要持久的数据存储。