假设query是一些已经定义的查询。据我所知,connection.execute(query).fetchmany(n)显然connection.execute(query).limit(n).fetchall()返回相同的结果集。我想知道其中之一是否更惯用,或者 \xe2\x80\x94 更重要的是 \xe2\x80\x94 性能更高?
示例用法如下:
\n\nquery = select([census.columns.state, (census.columns.pop2008 - census.columns.pop2000).label("pop_change")]).group_by(census.columns.state).order_by(desc("pop_change"))\nresults_1 = query.limit(5).fetchall()\nresults_2 = connection.execute(query).fetchmany(n) #`results_2` = `results_1`\nRun Code Online (Sandbox Code Playgroud)\n
limit 将把 sql 查询的一部分发送到数据库服务器。
使用 fetchmany,查询的执行没有任何限制,但客户端(python 代码)仅请求一定数量的行。
因此在大多数情况下使用 limit 应该更快。
| 归档时间: |
|
| 查看次数: |
6926 次 |
| 最近记录: |