Justin Lowen Asked: 2024-04-23 01:40:23 +0800 CST2024-04-23 01:40:23 +0800 CST 2024-04-23 01:40:23 +0800 CST PostgreSQL 和 SQLAlchemy:最大限度地减少繁琐应用程序的延迟影响 772 运行 PostgreSQL 和 SQLAlchemy ORM 时,是否有任何方法可以最大限度地减少应用程序和数据库之间的延迟影响?更改加载策略或预加载属性是有效的 - 通常只是减少应用程序和数据库之间的语句数量。是否有任何其他技术可用于最大限度地减少连接开销的影响? 在下面的 Grafana 图中,我使用tc流量控制模块模拟了应用程序和数据库之间的 10 毫秒延迟。在中间点,我删除了这种人为延迟,导致在SELECT 1;应用程序和数据库之间计时时产生约 300 微秒的延迟(本地主机环回接口 - 与应用程序位于同一容器内的数据库)。 这似乎表明测量的进程/API 端点中的延迟敏感性。 postgresql 1 个回答 Voted Best Answer Laurenz Albe 2024-04-23T22:39:48+08:002024-04-23T22:39:48+08:00 提高高延迟网络性能的典型方法是使用用户定义的数据库函数。这样,您就可以通过一次客户端-服务器往返来执行许多语句。 提高高延迟网络性能的另一种方法是使用管道:您向服务器发送多个语句,并且在发送下一个语句之前不要等待上一个语句的结果。 网络协议支持管道,最近的 PostgreSQL 版本在 C API 中也支持管道。您还可以通过在单个命令中发送多个语句(以分号分隔)来实现此目的。 我不知道您的客户端 API 和您正在使用的 ORM 是否支持上述任何内容。
提高高延迟网络性能的典型方法是使用用户定义的数据库函数。这样,您就可以通过一次客户端-服务器往返来执行许多语句。
提高高延迟网络性能的另一种方法是使用管道:您向服务器发送多个语句,并且在发送下一个语句之前不要等待上一个语句的结果。
网络协议支持管道,最近的 PostgreSQL 版本在 C API 中也支持管道。您还可以通过在单个命令中发送多个语句(以分号分隔)来实现此目的。
我不知道您的客户端 API 和您正在使用的 ORM 是否支持上述任何内容。