如何高效地给予SQLite3内存数据库持久化

xmq68pz9  于 2022-12-23  发布在  SQLite
关注(0)|答案(1)|浏览(393)

我经常使用SQLite3数据库作为面向非技术级别用户的快速而肮脏的内部工具。一个工具的使用量远远超过预期,需要一些优化。似乎将数据库移到内存中是最直接的方法。但是,这种方法的一个关键问题是持久性的损失(即:应用程序停止并且数据库中的数据消失)。
虽然我希望能够捕捉到应用程序退出并触发活动数据库到磁盘的备份,但实际上我没有时间处理所有的边缘情况。我想知道是否有其他方法备份内存中的SQLite3数据库以处理应用程序的意外停止?
最简单的方法是在磁盘上保留数据库的副本,并在写入内存中的数据库时写入该副本,但我不确定这样做的效果如何,而且我还担心两个数据库会变得不同步。

hjzp0vay

hjzp0vay1#

为了使SQLite内存数据库持久化,并且在连接终止/应用程序退出时不被擦除,您可以创建RAM磁盘,并使用它在那里创建数据库文件。
机器重启后所有数据仍然会丢失,因此建议在正常的应用程序退出时将数据库转储到常规的“硬”文件,并在应用程序启动时重新创建。

相关问题