MysqlDataSource和MysqlConnectionPoolDataSource有什么区别?

时间:2013-03-23 00:44:11

标签: mysql glassfish datasource

我正在应用程序服务器中配置一个mysql连接(具体来说是glassfish,但我对其他应用程序服务器也很好奇)并且看起来有两个非常相似的资源类型选项&驱动程序。即,MysqlDataSourceMysqlConnectionPoolDataSource

我很好奇两者之间的区别是什么。似乎glassfish正在维持一个连接池,所以很难分辨出差异是什么。

感谢您提供的任何见解。

1 个答案:

答案 0 :(得分:2)

MysqlDataSource是一个Java本机数据库接口,它返回与连接参数中定义的数据库的连接。 MysqlConnectionPoolDataSource是MysqlDataSource的子类,它返回池化连接资源。不同之处在于您的连接资源是否已池化或连接的目标是否已池化。这通常由硬资源和预期连接数决定。如果您有多个用户同时连接,您可能希望将这些用户中的多个用户集中到一个连接中,因为内存等硬资源允许这样做。因此,您将限制在内存中运行的驱动程序的实例数,并允许驱动程序管理尽可能多的内部管理的线程。

考虑网络集线器与网络交换机。交换机总是更快,但直到流量大到足以重要时才会实现。您的问题也是如此,如果用户数量达到内存和CPU所包含的潜力,则池化连接将提高性能。