擅长:python、mysql、java
<p>我一直在研究使用SQLAlchemy的高效遍历/分页,并希望更新这个答案。</p>
<p>我认为可以使用slice调用来适当地限制查询的范围,并且可以有效地重用它。</p>
<p>示例:</p>
<pre><code>window_size = 10 # or whatever limit you like
window_idx = 0
while True:
start,stop = window_size*window_idx, window_size*(window_idx+1)
things = query.slice(start, stop).all()
if things is None:
break
for thing in things:
analyze(thing)
if len(things) < window_size:
break
window_idx += 1
</code></pre>