从MySQL写入文件时出现内存问题

时间:2016-06-02 01:49:51

标签: python mysql memory

db.connect()
sentenceTB = sentenceTB.select()
for i, sentence in enumerate(sentenceTB):
    with open('./commentary/sentence%i.txt' %i, 'w', encoding='utf-8') as f:
        f.write(sentence.SNTENC)
db.close()

我使用此代码连接到数据库,选择一个表并将该表中的所有内容写入单独的文件。该表有超过1百万条记录,它首先变得很棒,但是当代码开始写入第900万条记录时,计算机的速度非常慢。 PyCharm不断要求我为它分配更多内存,如果在1小时内完成500k记录,现在需要1小时才能写出50-100条记录。

我认为它应该以某种方式连接到释放内存,但我真的不知道该怎么做。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你需要关闭光标吗?看起来你每次迭代都会打开一个新的,这可以解释几十万次迭代后内存的不足。

db.connect() sentenceTB = sentenceTB.select() 对于i,枚举中的句子(句子TB):     with open('./ commentary / sentence%i.txt'%i,'w',encoding ='utf-8')为f:         f.write(sentence.SNTENC)     cursor.close() db.close()