如何高效地实现 SQLite3 内存数据库持久化

问题描述 投票:0回答:1

我经常使用 SQLite3 数据库作为面向非技术级别用户的快速而肮脏的内部工具。一种工具的使用量远远超过预期,需要进行一些优化。将数据库移至内存中似乎是最直接的方法;然而,这种方法的一个关键问题是持久性的丧失(即:应用程序停止并且数据库中的数据消失)。

虽然我希望能够捕获应用程序退出并触发将活动数据库备份到磁盘,但实际上我没有时间处理所有边缘情况。我想知道是否有其他方法可以备份内存中的 SQLite3 数据库以处理应用程序的意外停止?

最简单的方法是在磁盘上保留数据库的副本,并在写入内存数据库时写入它,但我不确定它的性能如何,而且我还担心两个数据库变得不同步。

sqlite in-memory-database in-memory
1个回答
0
投票

为了使SQLite内存数据库持久化,并且在连接终止/应用程序退出时不被删除,您可以创建RAM磁盘,并用它来创建数据库文件。

机器重启后所有数据仍然会丢失,因此建议在正常应用程序退出时将数据库转储到常规“硬”文件,并在应用程序启动时重新创建它。

© www.soinside.com 2019 - 2024. All rights reserved.