1

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

通常,数据库连接是一个用于一切的单例对象。但是,您可能想要创建同一类的另一个实例的原因是什么。(我在某处读过。)

试图理解这一点,两个 DB 连接实例在写入 DB 时似乎很有可能导致冲突。但是阅读时会更快吗?(也许这是一个原因?)

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

4

2 回答 2

0

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

于 2013-07-24T03:56:53.417 回答
0

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

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

关于数据库连接,大多数数据库访问技术都提供连接池。所以你只需打开连接,做你的工作,然后关闭。这将获取连接并将其释放回池中,因此不必重新创建它们。

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

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

于 2013-07-24T03:59:24.450 回答