

Class.forName("com.mysql.jdbc.Driver");
String name = "shine_user";
String password = "123";
String url = "jdbc:mysql://172.16.100.131:3306/clever_mg_test";
Connection conn = DriverManager.getConnection(url, name, password);
// 之后程序终止,连接被强制关闭

第1步:建立TCP连接,通过三次握手实现; 第2步:服务器发送给客户端握手信息,客户端响应该握手消息; 第3步:客户端发送认证包,用于用户验证,验证成功后,服务器返回OK响应,之后开始执行命令;
Connection.close()关闭的,而是由于程序执行完毕,导致进程终止,造成与数据库的连接异常关闭,所以最后会出现TCP的RST报文。在这个最简单的代码中,没有设置任何额外的连接属性,所以在设置属性上占用的时间可以认为是最少的(其实,虽然我们没有设置任何属性,但是驱动仍然设置了字符集、事务自动提交等,这取决于具体的驱动实现),所以整个连接所使用的时间可以认为是最少的。但从统计信息中可以看出,在不包括最后TCP的RST 报文时(因为该报文不需要服务器返回任何响应),但是其中仍需在客户端和服务器之间进行往返7次,也就是说完成一次连接,可以认为,数据在客户端和服务器之间需要至少往返7次,从时间上来看,从开始TCP的三次握手,到最终连接强制断开为止(不包括最后的RST报文),总共花费了:
Class.forName("com.mysql.jdbc.Driver");
String name = "shine_user";
String password = "123";
String url = "jdbc:mysql://172.16.100.131:3306/clever_mg_test";
Connection conn = DriverManager.getConnection(url, name, password);
conn.close();

第1步:此时处于MySQL通信协议阶段,客户端发送关闭连接请求,而且不用等待服务端的响应; 第2步:TCP断开连接,4次挥手完成连接断开;
缓存 SQL的预编译 负载均衡 ……
来源:https://blog.csdn.net/lmy86263/article/details/76165714

文章转载自数据与人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




