我有一个在嵌入式 linux 上运行的应用程序。我有一个预先构建的数据库,其中包含一些表,每个表都有很多行(数千)和 52 列。我提前构建了数据库,因为我担心如果我将在运行时执行“插入”,我会产生磁盘碎片,所以我首先构建一个带有大量垃圾“插入”的数据库,并在运行时我使用“更新”。
我每 3 秒向数据库写入大量数据,为了加快写入过程,我在 SQLite 中使用 WAL 模式。虽然,我有性能问题。似乎每当一个检查点发生时,它花费的时间太长,处理器无法在不到 3 秒的时间内完成。为了改进这一点,我创建了一个线程,在大约 10 次写入调用之后,它从主线程接收消息队列,而不是检查点。
所以现在,情况似乎好转了,但 WAL 文件越来越大......我该如何解决?