当我使用Node.js用于Web应用程序时,我应该使用SQL或JSON存储数据吗[关闭]

fkaflof6  于 2023-05-19  发布在  Node.js
关注(0)|答案(2)|浏览(216)

已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

8天前关闭
Improve this question
我刚开始用node.js编程,在此之前我使用PHP,我曾经在SQL数据库中存储数据。但是,我现在很困惑。我应该使用SQL或JSON保存数据。我需要保存数据,并显示在网页上或饲料这些数据绘制图形和图表。

gijlo24d

gijlo24d1#

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

内存

  • 您可以简单地将数据存储为应用程序中的变量,这很可能是访问速度最快的。
  • 如果存储大量数据,您可能会开始遇到问题,因为您将占用机器内存的很大一部分。
  • 当脚本重新启动时,所有数据都将丢失,因此应该能够在启动时再次生成数据。
  • 如果使用像PM2这样的进程管理器(如果托管在多核机器上,则需要这样做,请参阅https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04),则无法跨多个请求存储数据,因为进程不会共享公共内存。

输入输出

  • 您还可以将数据编码为JSON并将其存储在计算机上的文件中。
  • 我想不出哪种情况比使用DB更好,I/O通常只用于静态文件,如图像。
  • 这样做的明显缺点是它可能比数据库调用慢,但如果使用多个进程,还必须注意I/O并发问题。
  • 但是,如果你真的想存储JSON,可以考虑像Mongo DB这样的非关系型数据库。

数据库

  • 对于几乎所有情况,这都是我的首选方法(除了静态文件或非常短的数据,正如我上面提到的)。
  • 数据库也有存储和查找数据的有用方法-您需要在关系型或非关系型数据库之间进行选择,请查看https://www.mongodb.com/scale/relational-vs-non-relational-database以了解一些差异。
  • 同样,在使用多个进程时要注意的主要问题是并发性(通常只有在更新或插入记录时才有问题)。

我希望这能回答你的问题--我可能漏掉了一些东西,但我相信如果我漏掉了,别人会告诉我的。Node.js是Web服务器的绝佳选择,因为它是异步的,所以可以自然地一次处理多个连接。

pcrecxhr

pcrecxhr2#

你可以考虑这个args:

  • SQL数据库是关系型的,而NoSQL数据库是非关系型的。
  • SQL数据库使用结构化查询语言(SQL)并具有预定义的模式。NoSQL数据库具有用于非结构化数据的动态模式。
  • SQL数据库是垂直可扩展的,而NoSQL数据库是水平可扩展的。
  • SQL数据库是基于表的,而NoSQL数据库是文档,键值,图形或宽列存储。
  • SQL数据库更适合多行事务,而NoSQL更适合文档或JSON等非结构化数据。来源:explanation about SQL vs no SQL

相关问题