如果我的措辞不完全正确,我深表歉意——我对这一切都很陌生。
目标:我正在尝试提高从数据库中获取数据的速度
设置:
我在服务器 A 上托管数据库。也可以通过 www 等网站访问该数据库。我的网站。com(不是我的实际网站 ofc)。服务器端的这种访问是通过 Nginx 发生的,带有路由到类似localhost:1234
.
问题:如果我登录服务器并通过网站向数据库发出请求(即www.mydbweb.com
),数据将通过网络获取(对吗?),但如果我localhost:1234
直接通过请求,这是否意味着没有数据通过网络?
一般来说,是一种跳过通过网络获取的数据的方法吗?我觉得网络确实为大数据查询引入了某种延迟或瓶颈。
它取决于操作系统和网络配置,但与服务器的外部 IP 地址或本地主机/环回 IP 地址通信通常没有显着的速度差异,因为通常操作系统和网络堆栈都知道外部 IP 地址也是“这台机器”,数据包不会通过网络传输,而是保留在内存中。
但是与让这两者直接通信相比,在应用程序和数据库之间的路径中额外的 nginx 抽象层会增加延迟。
将应用程序连接到数据库的最快方法(当它们都在同一主机上运行时)是通过 Unix 套接字(对于在 Linux 或类似 Unix OS 上运行的数据库)或类似的直接连接。这种连接消除了将请求和响应封装在网络数据包中的需要。