如果我从 localhost 而不是 web 地址请求数据,数据是否会通过网络

如果我从 localhost 而不是 web 地址请求数据,数据是否会通过网络

如果我的措辞不完全正确,请原谅——我对这一切还很陌生。

目标:我正在尝试提高从数据库获取数据的速度

设置: 我在服务器 A 上托管数据库。数据库也可以通过类似 www . mydbweb . com 的网站访问(当然不是我的实际网站)。服务器端的访问通过 Nginx 进行,路由到类似localhost:1234.

问题:如果我登录服务器并通过网站向数据库发出请求(即www.mydbweb.com),数据将通过网络获取(对吗?),但如果我直接通过发出请求localhost:1234,这是否意味着没有数据通过网络传递?

总体来说,有没有办法跳过通过网络获取数据?我觉得网络确实会给大数据查询带来某种延迟或瓶颈。

答案1

这在一定程度上取决于操作系统和网络配置,但在与服务器的外部 IP 地址或本地主机/环回 IP 地址进行通信时通常没有明显的速度差异,因为通常操作系统和网络堆栈知道外部 IP 地址也是“本机”,并且数据包不会在线路上发出,而是保留在内存中。

但是,与两者直接通信相比,应用程序和数据库之间的路径中 nginx 的额外抽象层会增加延迟。

将应用程序连接到数据库(当它们都在同一台主机上运行时)的最快方法是通过 Unix 套接字(对于在 Linux 或类似的 Unix OS 上运行的数据库)或类似的直接连接。这样的连接无需将请求和响应封装在网络数据包中。

相关内容