Если ваш код работает на многопоточность или многопроцессорность. Пул подключений будет более эффективным. Определение из вики
В программной инженерии пул соединений - это кеш базы данных.
Соединения поддерживаются, так что соединения могут быть использованы повторно, когда
Будущие запросы к базе данных не требуется. Пулы соединений
используется для повышения производительности выполнения команд в базе данных.
Ниже приведен пример из sqlalchemy . Пул управляет всеми соединениями автоматически, и вам не нужно создавать новое соединение, когда вам нужно выполнить SQL.
import sqlalchemy.pool as pool
import psycopg2
def getconn():
c = psycopg2.connect(username='ed', host='127.0.0.1', dbname='test')
return c
mypool = pool.QueuePool(getconn, max_overflow=10, pool_size=5)
def fill_database(db):
...
for record in records:
add_to_db(db, record)
...
def add_to_db(db, record):
...
connection = mypool.connect()
cursor = connection.cursor()
cursor.execute("...")
connection.commit()
connection.close()