2017-10-19 94 views
0

sqlalchemy如何處理緩衝/分塊?如何以塊的形式查詢sqlalchemy?

with open('out', 'w') as f: 
    query = table.select() 
    for row in engine.execute(query): 
     output_row = make_row_string(row) 
     print(output_row, file=f) 

ResultProxy docs我推斷(正確?),這一切都在一次處理的行時,他們所有可用的閱讀。如何查詢和處理塊以使這項工作更快速地進行多行查詢?

我處理多行查詢的兩個想法是.fetchmany(chunksize) while Trueitertools塊。從遠程數據庫獲取多行的建議方法是什麼?

回答

0

你能避免使用stream_results裝載的查詢的整個結果:

engine.execution_options(stream_results=True) 

注意,結果流可能不會使查詢得更快 - 它纔有它使用較少的內存。另請注意,如果您的輸出格式爲CSV,則使用COPY要快得多。