rowcount
和SQLAlchemy ORM Query
的实例?如果我调用query.all()
,则会得到一个标准列表,可以得到其中的len()
,但这需要立即将整个结果集加载到内存中。
如果我调用iter(query)
,则会返回一个标准的python生成器,无法访问基础.rowcount
的{{1}}。
如果我致电ResultProxy
,那么query.count()
我正在两次往返一次可能很昂贵的查询到数据库。
如果我设法为iter(query)
持有ResultProxy
,那将给我Query
,那么我可以使用.rowcount
来获得与Query.instances()
会给我。
但是除了重复Query.__iter__()
和ResultProxy
的工作之外,是否有一种便捷的方法来达到Query
的{{1}}?似乎很不方便。
如This answer所述(感谢@terminus),获取Query.__iter__()
可能有用也可能没有用,并且在SQLAlchemy文档中明确警告不要使用纯“ select”语句。< / p>
也就是说,对于Query._execute_and_instances()
,任何查询(甚至是“ ResultProxy.rowcount
”个查询{{3 }}(感谢documented to return the correct number of records)。