三、「花费的时间可能受到网络状况、数据库服务器性能以及应用代码是否高效的影响」,但是这里只是一个最简单的例子,已经足够说明问题了!由于上面是程序异常终止了,但是在正常的应用程序中,连接的关闭一般都是通过()完成的,代码如下:("");String name = "shine_user";String password = "123";String url = "jdbc:mysql://172.16.100.131:3306/clever_mg_test";Connection conn = (url, name, password);();这样的话,情况发生了变化,主要体现在与数据库连接的断开,如下图:网络抓包第1步:此时处于MySQL通信协议阶段,客户端发送关闭连接请求,而且不用等待服务端的响应;第2步:TCP断开连接,4次挥手完成连接断开;这里是完整地完成了从数据库连接的建立到关闭,整个过程花费了:747.284311 - 747.100954 = 0.183357s = 183.357ms这里可能也有网络状况的影响,比上述的225ms少了,但是也几乎达到了200ms的级别。那么问题来了,想象一下这个场景,对于一个日活2万的网站来说,假设每个用户只会发送5个请求,那么一天就是10万个请求,对于建立数据库连接,我们保守一点计算为150ms好了,那么一天当中花费在建立数据库连接的时间有(还不包括执行查询和更新操作): 微软恶意代码数据
三、「花费的时间可能受到网络状况、数据库服务器性能以及应用代码是否高效的影响」,但是这里只是一个最简单的例子,已经足够说明问题了!由于上面是程序异常终止了,但是在正常的应用程序中,连接的关闭一般都是通过()完成的,代码如下:("");String name = "shine_user";String password = "123";String url = "jdbc:mysql://172.16.100.131:3306/clever_mg_test";Connection conn = (url, name, password);();这样的话,情况发生了变化,主要体现在与数据库连接的断开,如下图:网络抓包第1步:此时处于MySQL通信协议阶段,客户端发送关闭连接请求,而且不用等待服务端的响应;第2步:TCP断开连接,4次挥手完成连接断开;这里是完整地完成了从数据库连接的建立到关闭,整个过程花费了:747.284311 - 747.100954 = 0.183357s = 183.357ms这里可能也有网络状况的影响,比上述的225ms少了,但是也几乎达到了200ms的级别。那么问题来了,想象一下这个场景,对于一个日活2万的网站来说,假设每个用户只会发送5个请求,那么一天就是10万个请求,对于建立数据库连接,我们保守一点计算为150ms好了,那么一天当中花费在建立数据库连接的时间有(还不包括执行查询和更新操作): 