是否有人在运行SQLite内存数据库作为其Web应用程序的主数据库?我正试图处理这种设置的可行性/愚蠢性。
如果我有一个少于500个并发用户的Web应用程序和一个小的数据库(0到4 GB之间),那么在SQLite内存中运行整个数据库作为主数据库的可行性是什么应用程序?
在内存中运行显然会使ACID的“持久”方面变得困难,但使用SQLite backup API,似乎可以保持内存中的数据库与基于文件的数据库同步。我在想,当用户执行保存/更新/删除命令时,它可以立即更新内存中的副本,然后排队以使其进入基于文件的数据库。每当应用程序循环使用时,它都可以通过备份API从基于文件的数据库加载,对吗?
根据SQLite文档,必须保持单个连接打开以保持内存中的数据库运行,如果它保持打开数小时或数天,这是一个问题吗?
答案 0 :(得分:1)
您应该只使用内存数据库进行数据处理,而不是存储数据。因为您无论如何都需要将数据存储在磁盘上,所以首先将数据库存储在磁盘上会更简单,更有效。
答案 1 :(得分:0)
如果需要将数据库同步到磁盘,为什么要使用内存数据库?内存数据库的优点是数据永远不需要写入文件系统。由于您需要将数据写入磁盘,因此您已将唯一优势变为劣势。那为什么呢?只需尽可能大地调高缓存即可。