我的Python代码从SQLite中的表编写了一个嵌套词典。该表大约有4000万行。它在大约30-60秒内处理100万行。
在它达到约90%(3600万行)后,它变慢了,不再打印任何东西,而不会引发任何错误。
代码:
selection_query = "Select * From my_table"
cursor = conn.cursor()
Cursor.execute(tbl)
dictionary = {}
Counter_1 = 0
row_nr = 0
for row in Cursor:
dict_key_1 = str(row[0])
dict_key_2 = str(row[1])
value = row[5]
Counter_1 += 1
row_nr += 1
if dict_key_1 not in dictionary:
dictionary[dict_key_1]={}
dictionary[dict_key_1].update({dict_key_2 : value})
if Counter_1>1000000:
print(str("{00:.3%}".format(row_nr/4000000)) + str(datetime.now()))
counter=0
为什么它突然变得如此剧烈地减速?
1条答案
按热度按时间aamkag611#
我觉得你的记忆力有问题。在控制台上打印这么多行会占用大量的RAM内存(如果每行需要100个字节,那么就需要大约400 MB~500 MB)。你的电脑可能会说这个应用程序内存太多,并停止它。