如上述文档所述,对于连接或语句,结果可以是“流式传输”的。
例如
records = connection.execution_options(stream_results=True).execute(
'select * from large_table'
)
for rec in records:
process_it(rec)
Run Code Online (Sandbox Code Playgroud)
在支持此选项的 RDB 连接器上,上述命令将根据需要获取行,从而节省内存使用。
现在我有了Session可以连接数据库和查询对象的类。
我想执行以下命令,并且还想“流式传输”行获取。
records = connection.execution_options(stream_results=True).execute(
'select * from large_table'
)
for rec in records:
process_it(rec)
Run Code Online (Sandbox Code Playgroud)
stream_results选项?对于stream_results=True行为类型,您需要 ORMyield_per(count)方法。当获取非常大的结果集时,这可以节省内存。
https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.yield_per
count一次仅产生行。
| 归档时间: |
|
| 查看次数: |
9174 次 |
| 最近记录: |