python - 一次从临时表中获取n条记录

标签 python sql database postgresql

我有一个包含大约 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/

相关文章:

SQLAlchemy 使用包含@DECLARE 本地表的原始 SQL 执行

ios - 通过分号分隔从单个查询中删除多个表

database - PeopleSoft Integration Broker 异步消息是否在接收端连续触发?

python - UnicodeEncodeError 并将数据插入数据库

python - 智能日期解读

Python2.7 : Ensure 3D list of objects are unique

database - 如何仅在 Azure Cosmos DB 中的文档创建(而不是修改)后触发 Azure 函数?

python - 如何测试类属性是否是实例方法

mysql - 改进由许多子查询构建的查询

mysql - 使用group by和join时无法获取每天的最后订单金额