在数据库SQlite3 python3上输入缓慢

时间:2018-09-17 20:51:42

标签: python-3.x sqlite

我正在尝试使用python将用户名保存在本地sqlite3 db上。我真的很新。我的表格有10000行,只有一列用户名,但是插入所有10k值需要花费半小时以上的时间。我做错了什么?有什么线索吗?我的代码

 def create_table(channel_username):
    c.execute("CREATE TABLE IF NOT EXISTS {}(user_name UNIQUE)".format(channel_username))
    conn.commit()


def insert_username(channel_username,user_name):
    c.execute("INSERT OR IGNORE INTO {} VALUES(?)".format(channel_username),[user_name])
    conn.commit()


create_table(channel_username)

x= client.get_participants(channel_username, aggressive=True)

z=[]
for user in x:

    z.append(user.username)

fl = [i for i in z if i is not None]

fl.sort()

for user_name in fl:

    insert_username(channel_username,user_name)

print("DBfached successful")

1 个答案:

答案 0 :(得分:1)

插入速度并不慢;所有commit()通话都很慢。

删除它们,并仅在实际完成后执行commit()