Daniel Vérité:psql中的管道化(PostgreSQL 18)

Daniel Vérité:psql中的管道化(PostgreSQL 18)

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

在Postgres中,管道化是一种客户端特性,自7.4版本以来得以实现,PostgreSQL 14及以后的版本通过libpq支持。使用psql命令可以轻松启动和结束管道化,从而提高查询性能,测试表明在不同网络条件下显著加速查询处理。

🎯

关键要点

  • 管道化是Postgres中的一种客户端特性,自7.4版本以来得以实现。
  • 管道化允许在发送下一个查询之前不等待前一个查询的结果,从而提高吞吐量。
  • PostgreSQL 14及以后的版本通过libpq支持管道化,psql命令行客户端也提供了相关命令。
  • 使用psql命令可以通过\startpipeline和\endpipeline来启动和结束管道化。
  • 管道化创建了一个隐式事务,如果查询失败,所有更改将被回滚。
  • 在性能测试中,使用管道化的查询处理速度显著提高,尤其是在不同网络条件下。
  • 在同一主机上,管道化加速范围为1.5倍到5倍,局域网中为2.6倍到42倍,广域网中为5.4倍到71倍。
  • 管道化优化了网络利用率,减少了网络数据包的数量。
  • psql版本18引入了管道化的元命令,但不需要服务器端也升级到18版本。
➡️

继续阅读