У меня есть пакетная вставка, работающая с 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)