0

我需要使用 MySQL 在 Grails 中部署一个应用程序。

在性能上使用基本数据源或 JNDI 有什么区别?

4

1 回答 1

3

只要它们的配置相似,就不应该有任何性能差异。它们都将连接池,并根据需要返回一个预先连接的实例。

您会看到差异的地方在于配置。通常,JNDI 数据源更擅长测试死连接,以及关闭和重新创建它们。不过,这很容易在 Grails 中使用 DataSource,因为您可以配置一个properties块来指定是否定期测试连接,或者何时从池中检索连接等。较新版本的 Grails 配置了一个示例块,所以它是易于更改设置。

唯一的复杂性是池提供者在属性名称方面几乎没有一致性。有时密码是用password属性设置的,有时是pass. testOnBorrow,等设置也是如此testWhileIdle。但这对于 JNDI 池和 Grails 数据源来说都是一个问题。在这两种情况下,您都需要知道如何配置您正在使用的池。

我的偏好是在应用程序中进行配置,因为我更喜欢自包含的 WAR。您始终可以更改池提供程序以使用更强大的实现。请注意,较新版本的 Grails 使用Tomcat JDBC 池(这与您是否使用 Tomcat 作为服务器无关)并且它们的基准测试表明它比大多数其他实现执行得更好。而且您始终可以通过安装jdbc-pool插件自己安装它。

于 2013-08-24T02:53:38.620 回答