【发布时间】:2011-04-26 21:40:33
【问题描述】:
我正在使用 Python 来逐行保存数据...但这非常慢!
CSV 包含 7000 万行,而使用我的脚本我只能存储 1000 秒。
这就是我的脚本的样子
reader = csv.reader(open('test_results.csv', 'r'))
for row in reader:
TestResult(type=row[0], name=row[1], result=row[2]).save()
我认为对于测试我可能不得不考虑 MySQL 或 PostgreSQL。
有什么想法或提示吗?这是我第一次处理如此海量的数据。 :)
【问题讨论】:
-
sqlite 比 mysql 慢。 mongoDB 通常插入速度更快,尽管它有其他限制
-
什么是
TestResult?您没有显示对 sqlite3 的任何实际调用,因此很难对代码进行评论。如果您跳过save(),然后将TestResult 构造替换为pass,那么基线阅读时间是多少? -
Testresult 是 Django ORM 的 Model 子类
-
TestResult.save() 有什么作用?它会打开一个文本文件,保存一行,然后再次关闭文件吗?还是其他明显慢的东西?
标签: python mysql django sqlite csv