我目前正在玩SQLAlchemy,这真的很整洁.
为了测试,我创建了一个包含我的图片存档的大表,由SHA1哈希索引(删除重复:-)).这是令人印象深刻的快...
为了好玩,我select *在生成的SQLite数据库上做了相同的操作:
session = Session()
for p in session.query(Picture):
print(p)
Run Code Online (Sandbox Code Playgroud)
我希望看到哈希滚动,但它只是继续扫描磁盘.与此同时,内存使用率暴涨,几秒后达到1GB.这似乎来自SQLAlchemy的身份地图功能,我认为它只保留弱引用.
有人可以向我解释一下吗?我认为在写出哈希后会收集每个Picture p!?