【问题标题】:C# should I keep open connection in connection poolingC# 我应该在连接池中保持打开的连接吗
【发布时间】:2012-12-10 10:48:08
【问题描述】:

我正在开发多线程应用程序(服务器),我曾经一次处理 2000 个客户端,并且我在每个线程中打开 MySQL 数据库的单独数据库连接。所以我启用了连接池。我搜索了许多块,在使用连接后我们应该关闭它,然后它将返回到池中并被其他线程使用。 另一方面,我们知道建立连接是一个耗时的过程。所以我的问题是为什么我们要在连接池中关闭连接。什么是更好的保持连接打开或关闭它们?

【问题讨论】:

    标签: c# database


    【解决方案1】:

    我们知道建立连接是一个耗时的过程

    正确 - 这就是我们有连接池的原因。它们保持连接,因此您无需创建新连接。

    为什么要在连接池中关闭连接

    因此它们被返回到池中以供其他线程使用。

    连接是昂贵的资源,因此您希望尽快打开、使用和关闭它们,以便它们返回池中并可供其他线程使用。

    【讨论】:

    • 感谢您回答 Oded。
    【解决方案2】:

    当您“关闭”池中的连接时;您是说您已完成连接并且池可以再次使用它。

    调用 Close 不会物理地断开连接。池有自己的逻辑来确定连接何时物理关闭。

    【讨论】:

    • 谢谢理查德 我认为连接在关闭它们时会物理关闭。但它不是那样的。现在我对连接池很清楚了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2023-04-06
    • 2014-01-30
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多