我正在開發一個Web應用程序,在某些時候,我需要從我的數據庫中選擇1.000.000行。SQLAlchemy ORM是否是larga數據的正確選擇?
我的劇本是這樣的:
engine = create_engine(
"mysql://:@localhost/test",
isolation_level="READ UNCOMMITTED",echo=False
)
meta = MetaData(bind=engine)
meta.reflect(bind=engine)
cr = meta.tables['cr']
bl = meta.tables['bl']
DBSession = scoped_session(
sessionmaker(
autoflush=True,
autocommit=False,
bind=engine
)
)
test_query = session.query(bl,cr).filter(bl.c.severity_logged == '4_minor')
print test_query.all()
它不斷掃描光盤並增加了內存使用量,但不顯示任何東西。
在MySQL命令中,結果在4秒內返回。 如何使用SQLALchemy檢索大量數據?
請使用大寫字母作爲標題的第一個字符 –
首先,您確定從SQLAlchemy生成的查詢和您在MySQL中的查詢是相同的嗎?其次,你真的需要一次獲得1M行嗎? –
是的,我確定這兩個查詢都是一樣的。 \t 那麼我需要做的是,獲得1 000 000個查詢行結果,將它們存儲在一個字典列表(Python)中,然後計算結果的一些度量標準。也許我不需要將查詢結果存儲到內存中,以便稍後對它們進行計算?你有什麼建議,我是一個Python新手,所以你的幫助會很好。 – salamey