Пакетная вставка медленно с ядром SQLAlchemy? - PullRequest
1 голос
/ 26 мая 2020

У меня есть пакетная вставка, работающая с SQLAlchemy и Postgres, но я предполагал, что это значительно ускорит процесс ... Я пытаюсь вставить 24k строк, где один столбец предоставлен, а остальные равны нулю (всего пять столбцов) . Я изменил количество пакетов с 1000 до 10000, и это все еще занимает много времени, около пяти минут.

Я что-то делаю не так? Это сервер Postgres, работающий в моей локальной сети, и у него не должно быть проблем.

Соответствующий код ниже, и обратите внимание, что 'insert' взят из специализированной библиотеки postgres, импортирован вверху .

from sqlalchemy.dialects.postgresql import insert

def insert_domains_batch(self,domains):

    threshold = 10000

    while domains:
        batch = []
        while len(batch) <= threshold and domains:
            batch.append({"url": domains.pop()})
        stmt = insert(self.domains)
        stmt = stmt.on_conflict_do_nothing()
        self.connection.execute(stmt, batch)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...