【问题标题】:slow input on database SQlite3 python3数据库 SQlite3 python3 上的缓慢输入
【发布时间】:2025-11-29 04:50:02
【问题描述】:

我正在尝试使用 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")

【问题讨论】:

  • 阅读this会给你一些指导。 python sqlite 绑定不具备 C API 的功能或功能,但仍有一些东西可以从中拿走。从事务开始,并阅读executemany() 方法。

标签: python-3.x sqlite


【解决方案1】:

插入并不慢;所有commit() 调用都很慢。

删除它们,并仅在您真正完成时才执行commit()

【讨论】: