【问题标题】:should I store data with sql or Json when I am using Node.js for a web application当我将 Node.js 用于 Web 应用程序时,我应该使用 sql 还是 Json 存储数据
【发布时间】:2017-07-25 11:46:51
【问题描述】:

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

【问题讨论】:

  • 你用来存储数据的方式取决于数据和结构......而不是你用来处理它的语言。

标签: javascript php json node.js server


【解决方案1】:

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

内存

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

  • 如果您存储大量数据,您可能会开始遇到问题 因为你会用掉你机器的很大一部分内存。

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

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

输入输出

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

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

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

  • 但是,如果您真的想存储 JSON,请考虑使用像 Mongo DB 这样的非关系数据库。

数据库

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-29
    • 2011-01-16
    • 2010-12-25
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多