繁体   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