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