我希望向Postgres数据库发送多个读取查询,以减少需要对痛苦的远程数据库进行的跳闸次数。 libpq
中是否有任何内容支持此行为?
答案 0 :(得分:2)
是的,您可以在libpq中使用asynchronous handling functions。在链接页面上显示:
使用PQsendQuery和PQgetResult解决了PQexec的一个问题:如果 命令字符串包含多个SQL命令,这些命令的结果 命令可以单独获得。 (这允许一种简单的形式 重复处理,顺便说一句:客户端可以处理 服务器稍后仍在运行时的一个命令的结果 查询在同一个命令字符串中。)
例如,您应该能够使用包含多个查询的字符串调用PQsendQuery
,然后重复调用PQgetResult
以获取结果集。当没有更多结果集要获取时,PQgetResult
返回NULL。
如果需要,您还可以在等待执行这些查询时避免应用程序阻塞(在链接页面上有更详细的描述)。