我有一个用于执行sql查询的python脚本。问题是我的VM仅具有2GB的RAM,并且某些sql查询的RAM占用过多,因此内核会自动终止该脚本。如何使此代码的RAM效率更高?我想在我的postgres sql代码中实现分页。我该怎么做?有谁知道一个简单的实现吗?非常感谢您的帮助!
更新代码
std::string
答案 0 :(得分:2)
可能是这样的:
limit = 10
offset = 0
flag = True
while flag:
# query db with start and offset, example: select * from domains limit %start% offset %offset%
unique_domains = cursor.fetchall()
if not unique_domains:
flag = False
else:
# do processing with your data
offset += limit
答案 1 :(得分:0)
我在Postgres中找到了分页链接。 Five ways to paginate in Postgres, from the basic to the exotic
这是一个例子: 键集分页 上面的技术可以对任何种类的查询进行分页,包括不包含order子句的查询。如果我们愿意放弃这种普遍性,我们将获得优化。特别是当按索引列排序时,客户端可以使用当前页面中的值来选择要在下一页中显示的项目。这称为键集分页。
例如,让我们回到混合泳示例:
-- Add an index for keyset pagination (btrees support inequality)
CREATE INDEX n_idx ON medley USING btree (n);
SELECT * FROM medley ORDER BY n ASC LIMIT 5;