相关疑难解决方法(0)

内存高效的内置SqlAlchemy迭代器/生成器?

我有一个~10M记录的MySQL表,我使用SqlAlchemy进行交互.我发现对这个表的大型子集的查询将占用太多内存,即使我认为我使用的是内置生成器,智能地获取数据集的一口大小的块:

for thing in session.query(Things):
    analyze(thing)
Run Code Online (Sandbox Code Playgroud)

为了避免这种情况,我发现我必须构建自己的迭代器,这些迭代器会以块的形式出现:

lastThingID = None
while True:
    things = query.filter(Thing.id < lastThingID).limit(querySize).all()
    if not rows or len(rows) == 0: 
        break
    for thing in things:
        lastThingID = row.id
        analyze(thing)
Run Code Online (Sandbox Code Playgroud)

这是正常的还是有关于SA内置发电机我缺少的东西?

这个问题的答案似乎表明内存消耗是不可预期的.

python mysql sqlalchemy

74
推荐指数
4
解决办法
4万
查看次数

标签 统计

mysql ×1

python ×1

sqlalchemy ×1