我目前正在尝试使用SQLAlchemy,这真的很不错。
为了测试,我创建了一个巨大的表,其中包含我的图片存档,由SHA1散列索引(要删除重复项:-)。速度之快令人印象深刻。
为了好玩,我在生成的SQLite数据库上执行了相当于select *的操作:
session = Session()
for p in session.query(Picture):
print(p)
我希望看到哈希滚动而过,但它只是不断地扫描磁盘。与此同时,内存使用量急剧上升,几秒钟后就达到了1 1GB。这似乎来自SQLAlchemy的身份映射功能,我认为它只保留弱引用。
有人能给我解释一下吗?我以为每一张图片p