我刚刚开始使用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/