【发布时间】:2010-06-17 21:34:54
【问题描述】:
我有一个包含大约 100 万个条目的临时表。临时表存储较大查询的结果。例如,我想一次处理 1000 条记录。设置查询以使我获得前 1000 行,然后是下 1000 行等的最佳方法是什么?它们本质上不是有序的,但临时表只有一列带有 ID,因此我可以在必要时对其进行排序。我正在考虑使用临时表创建一个额外的列来对所有行进行编号,例如:
CREATE TEMP TABLE tmptmp AS
SELECT ##autonumber somehow##, id
FROM .... --complicated query
那我可以做:
SELECT * FROM tmptmp WHERE autonumber>=0 AND autonumber < 1000
等等...我将如何真正做到这一点?或者,还有更好的方法?我正在使用 Python 和 PostgreSQL。
【问题讨论】:
-
您可以指定您使用的是
pygresql还是psycopg2... -
如果您要创建一个包含一百万行的临时表,可能会有更好的方法,但如果不知道这些表以及您试图实现的结果,就很难说...
-
尝试使用 Postgres 游标和 LIMIT start, size。如果你愿意,我可以详细说明。
标签: python sql database postgresql