sqlite 编写嵌套词典的速度大大减慢

tvmytwxo  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(147)

我的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

为什么它突然变得如此剧烈地减速?

aamkag61

aamkag611#

我觉得你的记忆力有问题。在控制台上打印这么多行会占用大量的RAM内存(如果每行需要100个字节,那么就需要大约400 MB~500 MB)。你的电脑可能会说这个应用程序内存太多,并停止它。

相关问题