【问题标题】:Faster way for store static data in Node.js在 Node.js 中存储静态数据的更快方法
【发布时间】:2020-04-23 07:17:21
【问题描述】:

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

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

 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 令牌。

【问题讨论】:

  • 我真的是新来的,如果你给我投反对票,请告诉我我写得不好的地方,对不起。
  • 为什么要关心加载静态数据的性能?无论您将它存储在哪里,您都应该能够在服务器启动时加载它一次,并且从数据库加载它和从 JSON 文件加载它之间的细微差别应该对您网站的任何客户都没有影响。
  • 我正在考虑处理加载到 js 数组中的数据并存储在 mysqldatabase 中并在 api 有请求时加载。我也可以在服务器启动时从 mysql 加载到数组,但是当请求对数据库进行选择或在 js 数组上工作时更快?
  • 如果数据在服务器运行时从未更改,并且您多次需要它并且内存使用不是问题那么大,那么无论在哪里,您都应该将其缓存在服务器上它来自。任何时候您都可以避免在频繁命中的路由上调用数据库,这会提高性能。
  • 在启动时比较从数据库加载每条路由与从 JSON 加载不是一个公平的比较,也不是一个好问题。这就像比较苹果和橘子。问题是您是否应该在启动时加载和缓存,无论它来自数据库还是 JSON 文件。无论您想要数据库中的数据还是可能与性能无关的 JSON 文件,这都是服务器配置的一个单独问题。

标签: javascript mysql node.js database


【解决方案1】:

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

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

  2. 是否应该在加载此数据后将其缓存在内存中,以便不必再次获取它?

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

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

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

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

【讨论】:

  • @Awoonator - 这能回答你的问题吗?如果是这样,您可以通过单击答案左侧的复选标记向社区表明这一点,并在此处为自己赢得一些声誉积分以遵循正确的程序。
猜你喜欢
  • 1970-01-01
  • 2019-02-24
  • 2021-10-02
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 2013-11-19
  • 2016-03-31
相关资源
最近更新 更多