I am considering using sqlite3 on embedded Linux with JFFS2/NAND instead of using a file based approach. My concern is NAND wear and number of erase operations.
So how will e.g. the scenario of deleting or inserting a row in a 12MB database work:
- Will the whole 12 MB database be re-written when I commit, thus queueing all 12MB of NAND for erasure?
- Will only a journal entry be appended: "Row #325 is deleted"?
- Will just some bytes in the middle of the file be updated, marking only one or some NAND blocks for deletion?