его использования?
Да в принципе сколько угодно. Конкретно какая причина по которой ты хочешь удерживать его? Большое колличество запросов, или что?
немного обобщу вопрос: в каких случаях лучше создавать каждый раз соединение с бд, а в каких оставлять открытым?
Если ты не обрабатываешь большое количество запросов, то лучше закрывать соединение после завершения транзакции. Удерживают соединение когда нужно выполнять много запросов, так как открытие нового несёт небольшие расходы по времени. Ещё нормальной практикой считается испозовать пул соединений и переиспользовать их. При небольшой нагрузке открытие и закрытие ты в принципе и не почувствуешь и это будет более оптимально.
Вот на данный момент - на стороне бд у меня стоит pgbouncer, и я постоянно создаю новый конект. Но до поры до времени это не создвало проблем. Теперь начались замедления за счет бОльшего кол обращений) Если бы я переиспользовал конект - все было бы куда быстрее
Лучше использовать пул соединений, который держит соединения открытыми и брать соединение из пула когда нужно.
Я же верно понимаю у asyncpg для этого есть - create_pool?)
Создавать каждый раз соединение ты можешь например если у тебя соединение физически не может жить долго, например процесс запускается, подключается к базе, делает работу и завершается.
Обсуждают сегодня