MySQL Connector/NET 支持连接池,以提高数据库密集型应用程序的性能和可扩展性。这是默认启用的。Pooling
您可以使用连接字符串选项、Connection Reset
、
Connection Lifetime
、Cache Server
Properties
和将其关闭或调整其性能
Max Pool Size
特征
Min Pool Size
。有关详细信息,请参见
第 4.4.1 节“创建连接器/NET 连接字符串”。
连接池的工作原理是在客户端处理
MySqlConnection
. 随后,如果
MySqlConnection
打开了一个新对象,它将从连接池中创建,而不是创建一个新的本机连接。这提高了性能。
要按设计工作,最好让连接池系统管理所有连接。不要创建全局可访问的实例,MySqlConnection
然后手动打开和关闭它。这会干扰池的工作方式,并可能导致不可预测的结果甚至异常。
一种简化事情的方法是避免
MySqlConnection
手动创建对象。相反,使用将连接字符串作为参数的重载方法。通过这种方法,Connector/NET 自动创建、打开、关闭和销毁连接,使用连接池系统以获得最佳性能。
类型化数据集和MembershipProvider
类
RoleProvider
使用这种方法。大多数具有将 a
MySqlConnection
作为参数的方法的类,也具有将连接字符串作为参数的方法。这包括MySqlDataAdapter
。
MySqlCommand
您可以使用类的静态方法
代替手动创建对象MySqlHelper
。这些方法将连接字符串作为参数,并且完全支持连接池。
Connector/NET 每三分钟运行一次后台作业,并从池中删除空闲(未使用)超过三分钟的连接。池清理释放客户端和服务器端的资源。这是因为在客户端,每个连接都使用一个套接字,而在服务器端,每个连接都使用一个套接字和一个线程。
多个端点。
从 Connector/NET 8.0.19 开始,一个连接字符串可以包含多个启用了连接池的端点 ( )。在运行时,Connector/NET 从池中随机选择一个地址(或在提供时按优先级选择)并尝试连接到它。如果连接尝试不成功,Connector/NET 会选择另一个地址,直到地址集用完为止。不成功的端点每两分钟重试一次。成功的连接由连接池机制管理。
server
:
port