0

我正在设计一个当然需要数据存储(例如用户帐户、日志等)的应用程序。我不希望性能成为问题,因此数据的检索/更新/删除将在与主应用程序线程(创建者-消费者模型)不同的线程中。

我不能使用 NoSQL 数据库或任何其他数据库系统,因为它们需要运行外部应用程序才能使数据可用(例如,通过网络管道连接到主机)。

然而,我需要我的数据在不需要运行另一个应用程序的情况下可用,所以我想将一个系统集成到我自己的应用程序中。

我四处寻找可以集成的数据库,但找不到。

  • 是否有任何仅可用于简单的插入、更新、删除操作项目?
  • 还是我需要坚持使用平面文件,因为没有可以集成的独立数据存储库?(例如,为我的数据存储创建一个类并在那里定义文件写入函数)
  • 我还有哪些其他选择?

旁注:我知道这有点愚蠢,但实际上是我的选择之一:是否有一个 SQL(最好是 PostgreSQL)数据库,我可以与我的项目一起编译,然后在本地发出查询?

4

3 回答 3

1

数据库 [...] 需要一个外部应用程序

错误的。有很多进程内数据库系统(例如SQLite,只要稍加注意,就可以完全兼容 ACID)。

是否有一个 SQL(最好是 PostgreSQL)数据库,我可以与我的项目一起编译,然后在本地发出查询?

好吧,在您添加该评论之前,我就开始回答了,但是又想到了 SQLite。如果这个特定的数据库不适合您,您可能想要搜索“嵌入式数据库”或“进程内数据库”,有大量类似的产品——SQL 甚至 NoSQL 产品。

一个好的 NoSQL 键值数据库将是Berkeley DB,但我担心自从 Oracle 购买它以来许可证已经收紧,所以我不确定它现在是否仍然相关(除非你的应用程序是完全开源的,或者你可以购买商业许可)。

于 2013-07-03T21:24:58.337 回答
0

听起来对SQLite来说是个好工作

于 2013-07-03T21:23:43.223 回答
0

SQLite 呢?它不需要任何特殊和复杂的依赖关系。设置和使用相当容易。

于 2013-07-03T21:24:51.820 回答