首页 > 解决方案 > 在 Node.js 中存储静态数据的更快方法

问题描述

我写小游戏,有实体的静态数据

一个实体的示例数据(此数据在服务器工作时从未更改)

 id:black-dog
 type:feline
 date:2020-04-22
 location:hills
 level:1

我有大约 5.000 个实体,我的游戏是在 SPA 客户端和带有 MySQL 数据库的 REST API node.js 服务器中编写的。

存储静态数据更快的方法是:

  1. 存储在 MySql 数据库中

或者

  1. 像 json 或 js 模块(数组)一样存储并在服务器开始数组时加载(当 json 时)

出于安全原因,服务器使用 JWT 令牌。

标签: javascriptmysqlnode.jsdatabase

解决方案


你有几个相当独立的决定要做出:

  1. 您应该在服务器启动时加载这些数据还是每次都按需加载?

  2. 您是否应该在加载后将此数据缓存在内存中,这样您就不必再次获取它?

  3. 您应该将其存储在数据库中还是 JSON 文件中?

这些都是非常独立的决定。

如果数据不大(看起来很小),数据在服务器运行时不会更改,并且您在服务器请求期间经常需要它,那么很自然地加载一次并从那时起缓存它,所以您不必再次加载它。这将在一定程度上提高您的服务器性能。因此,如果这些条件为真,那么第 1 点和第 2 点的答案可能都是“是”。

将其存储在数据库中还是存储在 JSON 文件中,更多地取决于您希望在需要更改数据时如何管理这些数据。这个问题实际上与服务器性能无关,而是服务器的维护和配置以及最方便的问题。


推荐阅读