您现在的位置是:首页 > 文章详情

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

日期:2024-05-14点击:175

本文分享自华为云社区《JDBC连接openGauss6.0和PostgreSQL16.2性能对比》,作者: Gauss松鼠会小助手。

PostgreSQL vs openGauss

01 前置准备

安装JDK:

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

[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/

02 Hello World

纯java代码,不涉及数据库层,编辑java文件代码,注意文件名需与类名同名

vi HelloWorld.java

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

编译运行:

javac HelloWorld.java java HelloWorld

cde3e59d885d19f87ef1c5dfd69dfa0d_20240423-5920493a-8b73-4a89-8f8b-b28d64bc132b.png

03 连接数据库(PostgreSQL)

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

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

vi DBConnectDemo.java

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运行时则需要指定

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

392884d7dcd32added9cc8032688fc57_20240425-c04ac173-ccd2-4bbf-af68-eb7751ab5402.png

04 连接数据库(openGauss)

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

be2aa89349f19d672e59a7b619c95be4_20240424-f4c3e609-b22a-4bc7-a0a7-fd5caf651e1b.png

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

String url = "jdbc:opengauss://172.16.107.156:15400/testdb"; Class.forName("org.opengauss.Driver");

完整代码:

vi OGConnectDemo.java

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会打印其他日志信息,这里我们把输出结果写到文件里

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

012aef26a3c198bba8d6d221cd684756_20240425-baefea00-2d2e-49a2-b080-0feef391b58c.png

05 PG 🆚 OG 总结

image.png

  • PostgreSQL 16.2 对比 openGauss 6.0 在连接创建上大概有3~4倍左右的性能优势,当然都是在毫秒级别
  • 针对高并发场景建议使用连接池来减少连接的频繁创建和关闭所带来的耗时

 

点击关注,第一时间了解华为云新鲜技术~

 

原文链接:https://my.oschina.net/u/4526289/blog/11110445
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章