使用RDBMS减少内存消耗?

时间:2015-03-09 02:26:40

标签: c++ mysql sqlite postgresql memory

在我的Visual C ++应用程序中,我想分配很多对象,这会耗尽系统中所有可用的内存。为了解决这个问题,我决定将对象存储在数据库中。我只有3个候选人:MySQL,PostgreSQL和SQLite。但不知道哪一个更合适。

我需要的是:

  1. 将对象存储在数据库中而不是内存中。
  2. 通过密钥快速查找对象。
  3. 轻量级,因此RDBMS不需要大量系统资源,包括内存和磁盘空间。
  4. 无需服务器。
  5. 易于部署。
  6. 哪一个应该最适合我的需求?当然,如果你还有其他更好的选择,那就告诉我吧。

    SQLite提供了详细的文档,说明应该何时使用它。但是MySQL和PostgreSQL并没有这么难以选择,因为我对这两者并不熟悉。感谢。

2 个答案:

答案 0 :(得分:0)

我会使用SQLite。它不需要服务,而且是跨平台的。它易于部署且重量轻。它支持交易。它属于公共领域。

答案 1 :(得分:0)

您的问题:

  1. 将对象存储在数据库中而不是内存中。

    任何数据库都可以这样做,这就是数据库的定义。

  2. 通过密钥快速查找对象。

    同样是标准功能,如果找不到数据,那么使用数据库的重点是什么。

  3. 轻量级,因此RDBMS不需要很多系统 资源,包括内存和磁盘空间。

    这主要掌握在您手中,糟糕的查询会产生大量开销。无论您使用何种品牌的数据库(或软件语言)。

  4. 无需服务器。

    您的意思是“硬件”还是“客户端 - 服务器模型”? MySQL和PostgreSQL都是客户端 - 服务器模型中的服务。 SQLite最适合单个客户端。

  5. 易于部署。

    所有3个数据库都易于部署,但SQLite是最简单的。它不像其他服务器那样。

  6. 看起来SQLite是最合适的,但也检查你的其他要求,你没有提到的那些:性能,可靠性,备份,故障转移等等。你需要一个RDBMS来完成这种工作吗? ?内存中的C ++对象与可以使用SQL访问的几个数据库中的一堆记录非常不同。