繁体   English   中英

您可能需要两个或多个实例进行同一数据库连接的原因?

[英]The reason that you might want two or more instances for same DB connection?

我试图考虑一种情况,您需要多个数据库连接实例。

通常,DB连接是用于所有事物的一个单例对象。 但是,您可能想要创建同一类的另一个实例的原因是什么? (我在某处阅读)。

为了理解这一点,在写入数据库时​​,两个数据库连接实例会很容易引发冲突。 但是阅读时会更快吗? (也许这是原因之一?)

也许数据库连接不是一个很好的例子。 如果您知道在任何地方都可以创建一个Singleton类的多个实例,那么可以给我其他方案。

一个数据库连接可能是一个单例,但是对于某些应用程序,您当然希望同时具有多个数据库连接。 想想一个Web服务器。 您为什么不希望能够处理多个用户的并发请求? 数据库通常非常擅长确保这不会引起任何悲剧性冲突(存在事务隔离)。

您可能需要在本地应用程序/嵌入式数据库与服务器上更具体。

但是,如果您有一个与数据库服务器(SQL Server,Oracle等...)通信的应用程序服务器(IIS,Apache等...),则您希望同时并发和多个连接处于活动状态。 您需要并发,因为它是一台处理许多并发请求的服务器,而sql服务器应该能够处理。 序列化服务器上​​的所有数据库活动将是灾难性的。

关于数据库连接,对于大多数数据库访问技术,它们提供连接池 因此,您只需打开连接,进行工作,然后关闭即可。 这将获取连接并将其释放到池中,因此不必重新创建它们。

回复:“两个数据库连接实例在写入数据库时​​似乎很有可能引起冲突”

大多数数据库服务器在处理并发时也提供控制。 例如,对于sql server,您具有锁定隔离级别

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM