为什么在java中创建连接太昂贵
我确实想知道为什么创建连接被称为过于昂贵,因此 连接是共享的。池中的内容将被保留 为什么在java中创建连接很昂贵 因为创建到远程数据库的连接需要执行数百万条机器指令。您需要:为什么在java中创建连接太昂贵,java,connection,Java,Connection,我确实想知道为什么创建连接被称为过于昂贵,因此 连接是共享的。池中的内容将被保留 为什么在java中创建连接很昂贵 因为创建到远程数据库的连接需要执行数百万条机器指令。您需要: 解析连接字符串 在DNS中查找数据库的主机名 打开TCP/IP网络连接 通过网络连接建立SSL/TLS会话(昂贵的公钥加密、多消息交换) 将用户凭据传递给要进行身份验证的DB服务器,这可能涉及数据库查询以查找匹配的用户详细信息 每次网络数据包交换都会增加几微秒。。。或者更多 如果数据库在同一台计算机上,并且您通过环回
- 解析连接字符串
- 在DNS中查找数据库的主机名
- 打开TCP/IP网络连接
- 通过网络连接建立SSL/TLS会话(昂贵的公钥加密、多消息交换)
- 将用户凭据传递给要进行身份验证的DB服务器,这可能涉及数据库查询以查找匹配的用户详细信息
- 解析连接字符串
- 在DNS中查找数据库的主机名
- 打开TCP/IP网络连接
- 通过网络连接建立SSL/TLS会话(昂贵的公钥加密、多消息交换)
- 将用户凭据传递给要进行身份验证的DB服务器,这可能涉及数据库查询以查找匹配的用户详细信息
但是,还是值得在自己的机器上用自己的数据库测量它…IO,连接通常使用网络通信,比内存处理慢几个数量级。它们通常并不“太贵”。如果你每分钟只需要一次或者其他什么的话,使用后马上扔掉是可以的。如果您在紧密循环中调用它们,它们的成本太高,无法丢弃。不过,连接通常使用网络通信,这比内存处理慢几个数量级。它们通常不会“太贵”。如果你每分钟只需要一次或者其他什么的话,使用后马上扔掉是可以的。但是,如果你在严格的循环中调用它们,它们就太贵了,不能扔掉。我不是说我不同意,而是我更害怕网络延迟(=什么也不做,只是等待),然后CPU指令……我不是说我不同意,但我更害怕网络延迟(=什么也不做,只是等待),然后CPU指令。。。