我正在做一个很大的Postgres查询。尽管等待查询结束以回显所有结果,但是否可以逐步回显结果?
我的代码:
$sql1 = pg_query("select zhu_gid from indicateurs.note where zhu_gid not in (select gid from public.zh);");
while($data = pg_fetch_array($sql1))
{
echo $data['zhu_gid']."/";
}
答案 0 :(得分:1)
关于您的问题:否。 Postgres本身首先构建结果集,然后返回给客户端。
您可以为此使用cursor(仍然必须首先成功执行查询)。或多个查询,使用LIMIT
/ OFFSET
或(最好)确定性WHERE
条件对结果进行分区。您需要为它们添加确定性ORDER BY
。但是所有这些分页解决方案都有其特定的困难。相关:
此外,我不会使用NOT IN
。参见:
请考虑:
SELECT n.zhu_gid
FROM indicateurs.note n
LEFT JOIN public.zh ON zh.gid = n.zhu_gid
WHERE zh.gid IS NULL;