SQLAlchemy`.fetchmany()`vs`.limit()`

2024-10-16 22:25:48 发布

您现在位置:Python中文网/ 问答频道 /正文

假设query是一些已经定义的查询。据我所知,connection.execute(query).fetchmany(n)connection.execute(query).limit(n).fetchall()显然返回相同的结果集。我想知道其中一个是更惯用的还是更重要的是更有效的?你知道吗

示例用法如下:

query = select([census.columns.state, (census.columns.pop2008 - census.columns.pop2000).label("pop_change")]).group_by(census.columns.state).order_by(desc("pop_change"))
results_1 = query.limit(5).fetchall()
results_2 = connection.execute(query).fetchmany(n)    #`results_2` = `results_1`

Tags: columnsexecuteby定义connectionquerychangepop
1条回答
网友
1楼 · 发布于 2024-10-16 22:25:48

限制将是发送到数据库服务器的sql查询的一部分。你知道吗

对于fetchmany,查询的执行没有任何限制,但是客户机(python代码)只请求一定数量的行。你知道吗

因此,在大多数情况下,使用限制应该更快。你知道吗

相关问题 更多 >