медленный ввод в базу данных SQlite3 python3 - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь сохранить имя пользователя на локальном сервере sqlite3 db, используя python. Я действительно новый. Моя таблица имеет 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 голосов
/ 18 сентября 2018

Вставки не медленные; все commit() звонки медленные.

Удалите их и сделайте commit() только тогда, когда вы на самом деле закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...