我正在针对位于北弗吉尼亚州的亚马逊微型数据库在本地测试我的 Web 应用程序。我住在荷兰格罗宁根。当我通过公共互联网发送选择查询时,它需要2616(ms)
返回 42 KB 的结果集。
[INFO ] 2022-01-17 10:22:02.147 [http-nio-8080-exec-1] http_access_log - method=GET uri="/api/journal/get/virtual-scroll" status-code=206 bytes=42350 duration=2616(ms) client: remote ip=0:0:0:0:0:0:0:1 useragent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
当我做一个简单的SELECT 1 FROM TABLE
查询时,它需要 550 毫秒才能得到响应。那么这是否意味着响应大小增加时响应的延迟会增加?还是结果集返回查询运行缓慢?它是一个存储过程调用。
请记住,请求需要到达服务器,在那里进行处理,并且回复需要返回给客户端。每次传输都包括序列化和到目的地的传播,因此时间确实取决于数据大小。
但是,在您的情况下,最大的影响很可能来自服务器上的处理。复杂查询可能需要相当长的时间,具体取决于它们的复杂性(不一定与输出大小相关)和服务器性能。
为了完整性:
因此,您可以粗略估计往返时间不到 100 毫秒,而其余的延迟是由于服务器处理造成的。这就是为什么针对您的工作负载优化您的服务器和数据库至关重要的原因。此外,您需要考虑传输延迟,因此应用程序应尽可能优化和捆绑查询。