我正在开发一个使用 LiteDB 存储数据的 C# 程序。在设计阶段,我被告知它将是一个单用户应用程序,因此 LiteDB 似乎是一个不错的解决方案。我以前没有使用过 LiteDB 的经验。
但是最近我被告知该程序需要支持多个用户通过计算机网络访问和写入同一个数据库。我知道 LiteDB 不是为这种方式设计的,所以很明显的决定是切换到任何其他基于服务器的 DBMS,比如 MySQL。
现在我知道 LiteDB 支持并发访问,所以我已经评估了程序中数据库的所有操作。这些操作不是连续的,不需要对数据库的持续访问。
我的第一个问题是 LiteDB 是否可以实现以下功能:
- 多达 20 个程序实例大致同时通过网络访问数据库文件并接收数据。收到数据后,数据库连接关闭。不会对数据库进行任何更改。
- 多达 20 个程序实例大致同时通过网络访问数据库文件并提交更改。写入数据后,数据库连接关闭。没有从数据库中读取任何数据。
我想知道这两个选项中是否至少有一个是可能的。如果没有,我应该使用什么作为替代方案?我在一家公司工作,因此这可以解释为限制我可以使用的 DBMS 范围的商业用途。
LiteDB 对我来说非常有吸引力,因为它使存储数据变得非常容易,在我的例子中,这是包含其他类实例作为属性的类的实例。
最好的替代方案是具有易于设置和支持并发访问的最少功能的便携式数据库服务器。