簡體   English   中英

使用SQLalchemy讀取大文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM