Database 为什么DBMS需要守护进程?

Database 为什么DBMS需要守护进程?,database,architecture,Database,Architecture,我最近被介绍到MongoDB,通过阅读安装指南,我了解到我们必须首先运行守护程序(mongod),然后通过mongo.exe(对于windows)连接到守护程序才能实际运行命令。我注意到这是大多数DBMS的一般结构,我们必须启动一个服务器,然后连接到它来运行命令 为什么我们不能像Python或Node.js那样在单个程序实例中运行DBMS?具体来说,为什么我们需要DBMS的服务器-客户机体系结构?是的,您可以。这不是严格需要的 您描述的是SQLite是如何工作的。其他“嵌入式”数据库引擎也这样做

我最近被介绍到MongoDB,通过阅读安装指南,我了解到我们必须首先运行守护程序(mongod),然后通过mongo.exe(对于windows)连接到守护程序才能实际运行命令。我注意到这是大多数DBMS的一般结构,我们必须启动一个服务器,然后连接到它来运行命令


为什么我们不能像Python或Node.js那样在单个程序实例中运行DBMS?具体来说,为什么我们需要DBMS的服务器-客户机体系结构?

是的,您可以。这不是严格需要的

您描述的是SQLite是如何工作的。其他“嵌入式”数据库引擎也这样做


独立服务器的主要优点是多个客户端可以同时连接到它。在没有中央协调进程(服务器)的情况下,同时写入和读取共享数据文件变得越来越复杂和不可靠,以至于一个单独的专用进程很容易被证明是合理的。

因为否则,如果有10个用户,则必须运行10个单独的数据库服务器实例(每个用户一个)。对于单个服务器,只有一个服务器实例。为什么有10个,而1个可以工作?如果不是10个用户,而是100个、1000个或10000个用户都有一个单独的服务器实例,会发生什么情况?如何将所有这些单独的服务器实例与数据库的一个副本进行协调?