我有一个包含大约 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。
最佳答案
使用游标并获取您需要的行。当你有很多记录时,偏移...限制会变得很慢,游标会做得更好。
http://www.postgresql.org/docs/8.4/interactive/sql-fetch.html
关于python - 一次从临时表中获取n条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3065826/