HarmonyOS 鸿蒙Next 关系型数据库文件自动生成.db-shm文件和.db-wal文件的作用及必要性
HarmonyOS 鸿蒙Next 关系型数据库文件自动生成.db-shm文件和.db-wal文件的作用及必要性
最近研究数据管理相关的文档和api应用,发现不论键值型数据库还是关系型数据库,每次创建对应的数据库实例后都会生成三个文件:.db文件、.db-shm文件和.db-wal文件,.db文件很好理解,就是对应的数据库文件,但是同时生成的另外两个文件就不是很理解,必要性和用途是什么?
还有就是,每次对数据库实例的插入、删除、更新等操作,.db-shm文件和.db-wal文件都会更新,内存会增大,而.db文件大小不变(一直都是4kb),这是怎么回事?
有能解释清楚我疑惑的或者能找到相关文档的,欢迎一起交流。
有同样疑惑地开发者伙伴可以留言,也欢迎一起交流。
更多关于HarmonyOS 鸿蒙Next 关系型数据库文件自动生成.db-shm文件和.db-wal文件的作用及必要性的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next 关系型数据库文件自动生成.db-shm文件和.db-wal文件的作用及必要性的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
断开数据库连接是指我关闭数据库或者退出应用之类的场景吗?
.db文件大小一直是4K,那新增的数据在哪里查看。通过工具查看.db文件里面没有任何内容
看”楼下“我的回复,两个临时文件产生的原因,有助于你不让自动生成的处理。
怎么让SQLite不要自动生成.db-shm文件和.db-wal文件?有具体的操作吗?
在HarmonyOS鸿蒙Next中,关系型数据库文件自动生成.db-shm文件和.db-wal文件,这是SQLite数据库在WAL(Write-Ahead Logging)模式下的正常行为。
作用
- .db-wal文件:用于保存操作日志,当数据库采用WAL模式时,所有连接数据的操作都必须使用WAL。这个文件在数据库文件夹下生成,用于在事务失败时回滚更改,确保数据一致性。
- .db-shm文件:是共享内存文件,仅在SQLite以WAL模式运行时存在。它用于协调多个数据库连接对同一db文件的更新,防止数据冲突。
必要性
WAL模式旨在提高数据库的并发写入性能,并通过这些临时文件来保证数据的一致性和安全性。因此,这两个文件的生成是WAL模式正常运行的必要条件。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。