【问题标题】:Node.js Store object in database or in array?Node.js 将对象存储在数据库中还是数组中?
【发布时间】:2016-09-15 00:44:00
【问题描述】:

我正在开发一个 node.js 多人纸牌游戏应用程序,由 4 名玩家同时玩。

我有一个对象数组,其中包含所有正在进行的游戏, 我想知道是否正在进行 5000 场或更多场比赛,我的服务器应用程序会出现内存问题吗?

将对象存储在数据库中并每次读取它会更好吗,数据连接会更多使用但内存更少?在这种情况下最好的方法是什么?

【问题讨论】:

  • 这一切都取决于数据集有多大,您访问它的频率以及如果服务器出现故障,您需要它保持多少 - 您都没有共享这些数据。内存是首选,除非数据量太大或需要持久性或需要多进程访问。
  • 在我的示例中,每个用户(在本例中为 20 000 个用户)每 15-20 秒访问一次游戏对象。我的例子中不需要数据持久化,“内存是首选,除非数据量太大”,我什么时候应该考虑数据量太大?
  • 数据有多大?

标签: mysql node.js


【解决方案1】:

如果您实际上可以将数据保存在内存中,那通常会产生一个更快、更简单的解决方案。

以下是您可能不得不使用数据库的原因:

  1. 您需要从多个进程进行访问。
  2. 您需要数据的持久性(如果服务器应该重新启动或崩溃)。
  3. 您存储的数据超出了内存容量。
  4. 您需要某些已内置于典型数据库中的并发或事务功能。
  5. 您想使用现有数据库的某些搜索/索引功能。

如果这些原因都没有将您驱动到数据库并且数据可以轻松放入内存(对于 node.js 可能小于 500MB-1GB),具体取决于您的服务器使用多少其他内存并且您的服务器可以访问足够的运行 -时间记忆,那么从内存中存储和访问数据通常更快更简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多