JDBC连接openGauss6.0和PostgreSQL16.2性能对比

JDBC在Linux终端直接编译运行JAVA程序连接PG🆚OG数据库

看腻了就来听听视频演示吧:https://www.bilibili.com/video/BV1CH4y1N7xL/

前置准备

安装JDK:

详细安装步骤请问度娘,输入能正常返回即已安装

sql 复制代码
[root@db06 ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
[root@db06 ~]# javac -version
javac 1.8.0_262

下载PostgreSQL驱动jar包:https://jdbc.postgresql.org/

下载openGuass驱动jar包:https://opengauss.org/zh/download/

Hello World

纯java代码,不涉及数据库层

编辑java文件代码,注意文件名需与类名同名

sql 复制代码
vi HelloWorld.java

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World . . . ");
    }
}

编译运行:

sql 复制代码
javac HelloWorld.java
java HelloWorld

连接数据库(PostgreSQL)

需要用到驱动jar包,测试PG版本是16.2

创建Demo文件,文件名与类名同名

vi DBConnectDemo.java

sql 复制代码
import java.sql.*;

public class DBConnectDemo {

    public static void main(String[] args){
        // 相关ip,port,database,user,password需进行替换
        String url = "jdbc:postgresql://172.16.107.156:54321/testdb";
        String username = "muser";
        String password = "Test@123";
        try {
	        // 加载驱动
            Class.forName("org.postgresql.Driver");
            // 打印数据库版本
	        Connection conn = DriverManager.getConnection(url, username, password);
            Statement stmt = conn.createStatement();
            ResultSet result = stmt.executeQuery("select version();");
            while (result.next()){
                System.out.println("DB version : " + result.getString("version"));
            }
	        
            long avgtime = 0;
            int n = 10;		// 循环次数

	        // 循环打印连接建立时间
            for(int i=0;i<n;i++){
                long start = System.nanoTime();
                Connection connection = DriverManager.getConnection(url, username, password);
                long end = System.nanoTime() - start;
                System.out.println("connect success: " + end + " 纳秒");
                connection.close();
                avgtime += end;
            }
            System.out.println("avg time: " + avgtime/n + " 纳秒");
        }  catch (Exception e){
            e.printStackTrace();
        }
    }

}

编译运行:需要在路径前面加上 .: 来指定路径

javac编译时在同目录下可以不指定驱动jar包

java运行时则需要指定

sql 复制代码
javac -cp "/tmp/postgresql-42.5.2.jar" DBConnectDemo.java
java -cp "/tmp/postgresql-42.5.2.jar" DBConnectDemo (有问题)
java -cp ".:/tmp/postgresql-42.5.2.jar" DBConnectDemo
java -cp ".:./*" DBConnectDemo

连接数据库(openGauss)

openGauss出6.0了,下载个极简版来试试

opengauss连接需要调整驱动和数据库信息

sql 复制代码
String url = "jdbc:opengauss://172.16.107.156:15400/testdb";

            Class.forName("org.opengauss.Driver");

完整代码:

vi OGConnectDemo.java

sql 复制代码
import java.sql.*;

public class OGConnectDemo {

    public static void main(String[] args){
        // 相关ip,port,database,user,password需进行替换
        String url = "jdbc:opengauss://172.16.107.156:6543/testdb";
        String username = "muser";
        String password = "Test@1234";
        try {
                // 加载驱动
            Class.forName("org.opengauss.Driver");
            // 打印数据库版本
                Connection conn = DriverManager.getConnection(url, username, password);
            Statement stmt = conn.createStatement();
            ResultSet result = stmt.executeQuery("select version();");
            while (result.next()){
                System.out.println("DB version : " + result.getString("version"));
            }
                
            long avgtime = 0;
            int n = 10;		// 循环次数

                // 循环打印连接建立时间
            for(int i=0;i<n;i++){
                long start = System.nanoTime();
                Connection connection = DriverManager.getConnection(url, username, password);
                long end = System.nanoTime() - start;
                System.out.println("connect success: " + end + " 纳秒");
                connection.close();
                avgtime += end;
            }
            System.out.println("avg time: " + avgtime/n + " 纳秒");
        }  catch (Exception e){
            e.printStackTrace();
        }
    }

}

编译运行:OG会打印其他日志信息,这里我们把输出结果写到文件里

sql 复制代码
javac -cp ".:/tmp/opengauss-jdbc-6.0.0-RC1.jar" OGConnectDemo.java
java -cp .:/tmp/opengauss-jdbc-6.0.0-RC1.jar OGConnectDemo > OGConnectDemo.log
cat OGConnectDemo.log

PG 🆚 OG 总结

数据库 版本 连接调用次数 平均响应时间
PostgreSQL 16.2 100 25ms
openGauss 6.0 100 95ms
  • PostgreSQL 16.2 对比 openGauss 6.0 在连接创建上大概有3~4倍左右的性能优势,当然都是在毫秒级别
  • 针对高并发场景建议使用连接池来减少连接的频繁创建和关闭所带来的耗时
相关推荐
Quincy_Freak2 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
2601_962683894 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程4 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_5 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫6 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL7 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R7 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL7 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql
忧郁的紫菜7 小时前
WCF+JSON+实体对象与WebService+DataSet效率大比拼
数据库·oracle·json
IvorySQL8 小时前
PostgreSQL 技术日报|2026-07-05
数据库·postgresql