场景:我想在嵌入式设备上使用带有eMMC而不是磁性硬盘的SQLITE。所有闪存都具有有限的写入周期。所有最近的记忆都有一个磨损均衡系统,可以延长记忆的使用寿命。每次写入都分布在设备的整个地址空间(逻辑地址和物理地址之间的映射)。闪存的主要问题是写入放大系数(WAF):当您想将一些数据写入存储器时,将要写入的最小内存量是整个存储器页面(1,2或4 KB取决于存储器) )。因此,如果您想写1位或900字节,您将写入1页1 KB(示例)。
假设有一个带有id(整数自动增量),时间戳(整数索引)和数据(未编入索引的字符串)的SQLITE表。 是否可以预测(高估)为每个INSERT写入的字节数?
场景示例:INSERT INTO表(时间戳,数据)VALUES(140909090,"数据限制为100字节")。
请注意,在我的场景中,时间戳通常会增加,因为它是数据记录的实时时间戳。
可以预测将为每个插入写入foreach插入8(id)+ 8(时间戳)+最多100个字节(数据)。但是id和timestamp索引的写入开销呢?