单例 JDBC 连接与多连接的性能
Performance of singleton JDBC connection vs multiple connections
我想知道为什么使用单例 JDBC 连接比使用多个 JDBC 连接更快。显而易见的答案是使用单个连接比使用多个连接更快,因为创建连接的过程相当耗费资源。
我正在寻找对为什么会这样的深入解释。
我测试了下面的单例方法和多例方法。
单例
@Component
public class ConnectionService {
private static Connection connection = null;
static {
String url = "REDACTED";
String user = "REDACTED";
String pass = "REDACTED";
try {
connection = DriverManager.getConnection(url, user, pass);
}
catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection()
{
return connection;
}
多个
public Connection establishConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection("REDACTED", "REDACTED", "REDACTED");
} catch (SQLException e) {
System.out.println("No connection");
}
return connection;
}
测试
我测试了两种方法的性能,结果如下。
如果您使用多线程,每个线程都应该有自己的连接。否则,单身是 'right' 的方式。
我想知道为什么使用单例 JDBC 连接比使用多个 JDBC 连接更快。显而易见的答案是使用单个连接比使用多个连接更快,因为创建连接的过程相当耗费资源。
我正在寻找对为什么会这样的深入解释。
我测试了下面的单例方法和多例方法。
单例
@Component
public class ConnectionService {
private static Connection connection = null;
static {
String url = "REDACTED";
String user = "REDACTED";
String pass = "REDACTED";
try {
connection = DriverManager.getConnection(url, user, pass);
}
catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection()
{
return connection;
}
多个
public Connection establishConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection("REDACTED", "REDACTED", "REDACTED");
} catch (SQLException e) {
System.out.println("No connection");
}
return connection;
}
测试
我测试了两种方法的性能,结果如下。
如果您使用多线程,每个线程都应该有自己的连接。否则,单身是 'right' 的方式。