SQLite Forum

Sqlite high IO load makes usage impossable
Login
We don't use WAL mode here because we have only virtual tables in the SQLite db file, so I am no expert on this, but here goes anyway:

A read transaction on a WAL mode db file needs to record an "end mark" to prevent a checkpoint from transferring changed pages to the main db file that the reader should not (yet) be seeing. Since you do not mention transactions, I am guessing that what you are seeing is "end marks" constantly being added and removed in the WAL file. This would be reduced if you would read more than one value in one transaction.

You have not mentioned writes. Depending on how frequent and how lengthy writes are, it may be very much faster to use journal mode instead.