SELECT查询何时开始返回行?

And*_*uel 10 sql postgresql select

假设以下查询:

SELECT * FROM table;
Run Code Online (Sandbox Code Playgroud)

DBMS会在获取第一行后立即给我第一行,还是首先获取所有行(将它们保存在某种缓冲区中)然后立即给我所有行?

如果我的问题不明确.假设其中的行数table使得DBMS将花费60分钟来获取所有行.DBMS会在60分钟内逐步返回行,还是在收到任何数据之前需要等待60分钟?

Pet*_*aut 8

在PostgreSQL中,如果查询执行计划允许,服务器确实会在客户端可用时将其返回给客户端.在您的简单示例中就是这种情况.在其他情况下,例如,如果你可能在最后有一个排序,并且必须等待它完成.

但是如果使用标准的libpq接口,客户端库会在将结果返回到客户端程序之前在内存中构建整个结果.要逐行获取结果,需要在libpq中使用单行模式.如果您使用其他界面或其他语言,结果可能会有所不同.