网站备案 信息,郑州航空港建设局网站,安徽电子工程学校,动漫制作专业需要了解哪些知识某一个程序启动速度超级慢#xff0c;查看日志得知是是在Init DruidDataSource ~ {dataSource-1} inited 这一段耗时最长#xff0c;这一段是Druid 数据源初始化#xff0c;进行连接的创建等#xff0c;使用mysql命令行连接发现连接超级慢#xff0c;可见是在创建连接的时…某一个程序启动速度超级慢查看日志得知是是在Init DruidDataSource ~ {dataSource-1} inited 这一段耗时最长这一段是Druid 数据源初始化进行连接的创建等使用mysql命令行连接发现连接超级慢可见是在创建连接的时候导致慢。 原因 性能开销由于需要进行 DNS 解析以及反向解析连接过程会有一定的延迟尤其是在 DNS 配置不当或 DNS 服务器响应较慢的情况下。 DNS 不可用时的影响如果 DNS 服务器不可用或配置有问题连接 MySQL 服务器时可能会变得非常缓慢甚至无法连接。 解决方案 启用 skip-name-resolve 会跳过反向 DNS 解析这样 MySQL 只会基于 IP 地址来进行连接和身份验证从而加速连接过程并避免 DNS 配置或延迟导致的问题。 [mysqld]
skip-name-resolve 同时请注意在增加该配置参数后mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了因为这是禁止了域名解析的结果。 SELECT user, host, authentication_string FROM mysql.user; MySQL连接过程
客户端client 192.168.1.100
服务端
DNS 解析
主机名解析当客户端通过主机名例如 mysql -h example.com -u user -p连接 MySQL 服务器时MySQL 会首先通过 DNS域名系统解析该主机名为 IP 地址。这个过程涉及向 DNS 服务器发送请求并接收响应。
DNS 查询客户端向 DNS 服务器查询 example.com或者你指定的任何主机名DNS 服务器会返回该主机名的 IP 地址例如 192.168.1.100。如果 DNS 解析失败比如域名不存在或者 DNS 服务器不可用连接过程将失败。 如果直接使用IP进行连接则这一步跳过 建立 TCP 连接
连接过程一旦 DNS 解析完成客户端使用解析到的 IP 地址和指定的端口号MySQL 默认端口是 3306建立 TCP 连接。
握手过程在连接建立后MySQL 服务器和客户端之间会进行 TCP 握手。这是一个标准的网络协议过程确保双方的连接是可靠的。 发送连接请求
客户端向 MySQL 服务器发送连接请求。这个请求包括客户端的用户名、密码、目标数据库、字符集等信息。 主机名反向解析 根据IP解析出主机名就是反向解析 1、MySQL 服务器收到连接请求客户端的 IP 地址是 192.168.1.100
2、MySQL 服务器将该 IP 地址转换为反向 DNS 查询格式100.1.168.192.in-addr.arpa。
3、MySQL 服务器向 DNS 服务器发送查询请求查询 100.1.168.192.in-addr.arpa 是否存在反向解析记录。
4、DNS 服务器返回 client作为主机名。
5、MySQL 服务器使用 client作为主机名进行身份验证验证是否允许来自该主机的连接。
如果反向解析出来的主机名在root用户允许访问的主机内那么这个连接就被授权否则MySQL 将拒绝该客户端的连接请求。 身份验证
MySQL 服务器验证客户端提交的用户名和密码。如果验证成功服务器会根据客户端的请求返回数据库的相关信息。 建立会话
如果身份验证成功MySQL 会为该客户端创建一个会话并允许其执行查询或操作。