JDBC连接openGauss6.0和PostgreSQL16.2性能对比
本文分享自华为云社区《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
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
04 连接数据库(openGauss)
openGauss出6.0了,下载个极简版来试试
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
05 PG 🆚 OG 总结
- PostgreSQL 16.2 对比 openGauss 6.0 在连接创建上大概有3~4倍左右的性能优势,当然都是在毫秒级别
- 针对高并发场景建议使用连接池来减少连接的频繁创建和关闭所带来的耗时
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Python函数与模块的精髓与高级特性
本文分享自华为云社区《Python函数与模块的精髓与高级特性》,作者:柠檬味拥抱。 Python 是一种功能强大的编程语言,拥有丰富的函数和模块,使得开发者能够轻松地构建复杂的应用程序。本文将介绍 Python 中函数和模块的基本使用方法,并提供一些代码实例。 1. 函数的定义与调用 函数是一段完成特定任务的可重复使用的代码块。在 Python 中,我们使用关键字def来定义函数。 def greet(name): """这是一个简单的问候函数""" print("Hello, " + name + "!") 以上是一个简单的函数greet,它接受一个参数name,并输出问候语。 要调用函数,只需使用函数名加上括号,并传入参数(如果有的话)。 greet("Alice") 这将输出: Hello, Alice! 2. 函数参数 Python 函数可以接受多个参数,并且支持默认参数和关键字参数。 def add(x, y=0): """这个函数将两个数字相加""" return x + y 在上面的示例中,参数y是一个默认参数,默认值为0。 result = add(3, 5) ...
-
下一篇
3 个好玩的前端开源项目「GitHub 热点速览」
单休的周末总是短暂的,还没缓过神新的一周就又开始了。如果你和我一样状态还没有完全恢复,那就让上周好玩的开源项目唤醒你吧! 每周 GitHub 上总是有一些让人眼前一亮的开源项目,上周好玩的前端项目特别多,比如这个 3D 地球的 JavaScript 组件 Cesium,作为老牌地理信息可视化组件又一次登上了 GitHub 热榜。宝可梦 + Roguelite 能够擦出什么样的火花?这款 Pokerogue 游戏送给宝可梦游戏的粉丝们。Cap 让录屏、上传、转码才能得到录屏视频的链接成为过去,一键录制并得到分享链接,简直太丝滑了。采用最新技术栈构建的免费、开源的落地页模板 tailwind-landing-page-template,让你快速得到一个简约、美观的落地页。 没状态,不想写一行代码!那就快试试一周涨了 5k Star 的 OpenUI 对话/交互式 AI 生成前端界面。 本文目录 1. 开源热搜项目 1.1 3D 地球仪组件:Cesium 1.2 Roguelite 风格的宝可梦游戏:Pokerogue 1.3 提取微信聊天记录的工具:WeChatMsg 1.4 轻巧、便捷的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,CentOS7官方镜像安装Oracle11G
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范






微信收款码
支付宝收款码