javascript - 当我使用 Node.js 作为 Web 应用程序时,我应该使用 sql 还是 Json 存储数据

标签 javascript node.js json

我刚刚开始使用node.js 进行编程,在此之前我使用的是PHP,并且曾经将数据存储在sql 数据库上。然而,我现在很困惑。我应该使用sql来保存数据还是Json。我需要保存数据并稍后在网页上显示它们,或者提供这些数据来绘制图形和图表。

最佳答案

在 Node.js 应用程序(或任何实际应用程序)中存储数据时,您有三个主要选项......

内存

  • 您可以简单地将数据存储为应用程序中的变量,这 很可能是最快的访问速度。

  • 如果您存储大量数据,您可能会开始遇到问题 因为您将耗尽机器的大部分内存。

  • 脚本重启时所有数据都会丢失,所以数据应该是 能够在启动时再次生成。

  • 如果您使用像 PM2 这样的流程管理器(如果 在多核机器上托管,请参阅 https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04 ),您将无法跨多个请求存储数据,因为进程不会共享公共(public)内存。

输入/输出

  • 您还可以将数据编码为 JSON 并将其存储在计算机上的文件中。

  • 我想不出这比使用数据库更好的情况,I/O 通常只用于图像等静态文件。

  • 这样做的明显缺点是它可能比数据库调用慢,但如果您使用多个进程,您还必须注意 I/O 并发问题。

  • 但是,如果您确实想存储 JSON,请考虑使用 Mongo DB 等非关系数据库。

数据库

  • 对于几乎所有情况,这都是我的首选方法(除了静态文件或非常短暂的数据,正如我上面提到的)。

  • 数据库还具有存储和查找数据的有用方法 - 您需要在关系数据库或非关系数据库之间进行选择,请查看 https://www.mongodb.com/scale/relational-vs-non-relational-database对于一些差异。

  • 同样,要警惕的主要问题是使用多个进程时的并发性(通常只是更新或插入记录时的问题)。

我希望这能涵盖您的问题 - 我可能错过了一些东西,但我相信其他人会告诉我如果我错过了。 Node.js 是 Web 服务器的绝佳选择,因为它是异步的,因此自然可以同时处理多个连接。

关于javascript - 当我使用 Node.js 作为 Web 应用程序时,我应该使用 sql 还是 Json 存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611530/

相关文章:

javascript - 加载路径中包含字符串或 astrix 的 JSON

javascript - 使用 AngularJS 动态构建树

javascript - 未处理的 promise 拒绝警告 : TypeError: Converting circular structure to JSON with Jest + Angular

javascript - 如何获取 javascript split 函数以从定界字符串中提取空值

node.js - 删除嵌套数组中的 id

node.js - 允许 NodeJS 和 Express 处理 Cache-Control header

javascript - JSON 中的多个整数值会自动添加

ios - 在 Swift 3 中保存 TableView 的数据

javascript - 了解异步回调

javascript - 用于匹配不同 URL 的正则表达式