0

是否有人运行 SQLite 内存数据库作为其 Web 应用程序的主数据库?我试图了解这种设置的可行性/愚蠢性。

如果我有一个少于 500 个并发用户的 Web 应用程序和一个较小的数据库(在 0 到 4 GB 之间),那么在内存中运行 SQLite 并将整个数据库作为应用程序的主数据库的可行性是什么?

在内存中运行显然会使 ACID 的“持久”方面变得困难,但使用SQLite 备份 API,似乎可以使内存中的数据库与基于文件的数据库保持同步。我在想,当用户执行保存/更新/删除命令时,它可以立即更新内存中的副本,然后排队进入基于文件的数据库。每当应用程序被循环时,它都可以通过备份 API 从基于文件的数据库中加载,对吗?

根据 SQLite 文档,必须保持单个连接打开以保持内存数据库正常运行,那么如果它保持打开数小时或数天,这是否会出现问题?

4

2 回答 2

1

您应该只使用内存数据库进行数据处理,而不是存储数据。因为无论如何您都需要将数据存储在磁盘上,所以首先将数据库存储在磁盘上会更简单、更有效。

于 2013-03-21T19:46:35.730 回答
0

If you need to sync the database to disk, why use an in-memory database? The advantage of an in-memory database is that data never needs to be written to a filesystem. Since you need data to be written to disk, you've turned the sole advantage into a disadvantage. So why do it? Just crank up the cache as large as you can.

于 2011-12-20T22:11:19.410 回答