澄清:
我使用公共主机名连接到 MySQL 数据库。主机名解析为我的服务器的外部 IP(例如 1.2.3.4)。我通过 MySQL 连接发送/接收的数据是否通过互联网传输?使用 localhost 会更快吗?它会占用我服务器的带宽吗?
答案1
如果你想确定,可以使用traceroute 1.2.3.4
。这将列出运行命令的主机和 IP 地址为 1.2.3.4 的设备之间的所有路由器。
答案2
如果您使用“localhost”作为主机名来连接 MySQL 服务器,MySQL 将不会使用 TCP,而是使用套接字。这应该是连接本地运行的 MySQL 服务器的最快方法。
如果您的服务器“正确”设置了外部 IP,即它不在内部网络中的防火墙或代理后面,则流量不会离开您的服务器,因为它知道目标 IP 地址是同一个系统。
答案3
您没有提到有关路由或交换设备的任何信息,但您可以特意确保您的数据在返回之前传出,但实际上您的数据几乎肯定不会以这种方式传出。
答案4
如果你的服务器 IP 配置在其机器上使用公共 IP 地址,那么就不会有任何流量离开你的服务器(但为了获得性能优势,最好还是使用 localhost 更安全)
如果你的 IP 是经过网络地址转换的,并且你的路由器有公网 IP,而你的服务器有内网 IP,那么至少流量可能会离开你的服务器,并从路由器反射回你的服务器,假设路由器在端口转发过程中进行端口反射 - 所以从某种意义上说,没有流量会离开你的网络,但有些流量会离开你的服务器
没有任何网络设置信息,我无法更确定