【发布时间】: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 服务器中编写的。
存储静态数据更快的方法是:
- 存储在 MySql 数据库中
或
- 像 json 或 js 模块(数组)一样存储并在服务器开始数组时加载(当 json 时)
出于安全原因,服务器使用 JWT 令牌。
【问题讨论】:
-
我真的是新来的,如果你给我投反对票,请告诉我我写得不好的地方,对不起。
-
为什么要关心加载静态数据的性能?无论您将它存储在哪里,您都应该能够在服务器启动时加载它一次,并且从数据库加载它和从 JSON 文件加载它之间的细微差别应该对您网站的任何客户都没有影响。
-
我正在考虑处理加载到 js 数组中的数据并存储在 mysqldatabase 中并在 api 有请求时加载。我也可以在服务器启动时从 mysql 加载到数组,但是当请求对数据库进行选择或在 js 数组上工作时更快?
-
如果数据在服务器运行时从未更改,并且您多次需要它并且内存使用不是问题那么大,那么无论在哪里,您都应该将其缓存在服务器上它来自。任何时候您都可以避免在频繁命中的路由上调用数据库,这会提高性能。
-
在启动时比较从数据库加载每条路由与从 JSON 加载不是一个公平的比较,也不是一个好问题。这就像比较苹果和橘子。问题是您是否应该在启动时加载和缓存,无论它来自数据库还是 JSON 文件。无论您想要数据库中的数据还是可能与性能无关的 JSON 文件,这都是服务器配置的一个单独问题。
标签: javascript mysql node.js database