[英]Reading large files using SQLalchemy
我正在嘗試使用SQLalchemy讀取200 MB的csv文件。 每行大約有30列,其中,使用下面的代碼,我僅使用8列。 但是,代碼運行速度非常慢! 有辦法改善嗎? 我想使用地圖/列表理解或其他技術。 如您所知,我是新手。 謝謝你的幫助。
for ddata in dread:
record = DailyData()
record.set_campaign_params(pdata) #Pdata is assigned in the previous step
record.set_daily_data(ddata) #data is sent to a class method where only 8 of 30 items in the list are used
session.add(record)
session.commit() #writing to the SQL database.
不要提交每條記錄。 每1000次左右提交或刷新一次:
for i, data in enumerate(csv_stuff):
rec = MyORMObject()
rec.set_stuff(data)
session.add(rec)
if i % 1000 == 0:
session.flush()
session.commit() # flushes everything remaining + commits
如果這仍然給您帶來問題,請執行一些基本的性能分析,請參閱我的文章如何配置SQLAlchemy驅動的應用程序?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.