2014-12-02 29 views
1

如果我作出这样的连接行到每个ñ结果的查询,我会得到一个总的N * M个结果行(每个结果都会有行加入到它)。PostgreSQL:结果(带JOIN)如何通过网络发送?

如果我通过网络连接,是否会通过网络发送行,或者PostgreSQL软件是否足够聪明,可以用更短的方式表示? (即n1 *(m1,m2,m3)代替n1m1,n1m2,n1m3等)

回答

1

我相信简短的回答是没有

Postgres Message Flow DOC:

在简单查询模式,检索到的值的格式始终文本, 除了当给定的命令是从与 BINARY选项声明光标的FETCH。在这种情况下,检索到的值为二进制 格式。 RowDescription消息中给出的格式代码告诉 正在使用哪种格式。

对于扩展查询模式

绑定还指定用于由 查询返回的任何数据的格式;格式可以全部指定,也可以按列指定。

关于的RowDescription消息:

指示行是关于在响应中返回到一个SELECT, FETCH等查询。此消息的内容描述行的布局 。这后面会有一行DataRow消息,每行返回到前端 。

所以这种格式可以二进制或纯文本,但我不相信这是你提到的任何一种分解出编码。也就是说,它将列出指定格式的所有列,在上面的例子中将是(n1, n2, n3, m1, m2, m3)