开发中用到了sqlite数据库
对数据库进行了一些增删改操作之后,在查看数据库的时候发现,会同时生成三个文件,如下所示

其中,
wal 和 shm,这两个文件是暂存一些原子操作记录的,在适当的时候会回滚写回到db文件中。有时候你更新了一些记录,db文件不会改变,只会修改WAL和SHM文件的内容,可以理解为:操作数据库后数据先缓存到shm 和 wal中,当wal缓存达到一定数量再写入db。shm相当于是桥梁。故shm 和 wal 是可以删除的。
如上截图,上次更新数据库是在2020-05-11 18:59,三个文件的操作时间一样。然后在2020-05-12 09:14又更新 了数据库内容,这时会先修改shm 和 wal的内容,暂时不会修改db的内容。所以db文件的操作时间还未更新。
附:查看sqlite数据库

本文详细介绍了在使用SQLite数据库进行操作时,WAL(Write-Ahead Logging)和SHM(Shared Memory)文件的作用及工作原理。揭示了在数据库更新过程中,数据如何先缓存于shm和wal文件中,待达到一定条件后再写入db文件,以及这些临时文件的可删除性。
614

被折叠的 条评论
为什么被折叠?



