Держать ли 1 соединение или открывать/закрывать под каждый запрос? mongo db + motor

Держать ли 1 соединение или открывать/закрывать под каждый запрос? mongo db + motor

Пишу api на flask. Использую mongo db и асинк драйвер motor Есть ли смысл при обработке запросов открывать и закрывать соединения под каждый отдельный запрос? или же стоит держать одно соединение на все приложение? какие преимущества у каждого способа?

Отдельные коннекты

@SYSTEM.route('/ping')
def ping():
    cluster = create_connection()
    # работа с бд
    close_connection(cluster)
    return {
        'result': 'ok'
    }

Общий коннект

cluster = create_connection()

@SYSTEM.route('/ping')
def ping():
    #работа с база данных
    return {
        'result': 'ok'
    }

Ответы (1 шт):

Автор решения: Ben Puls

Самым лучшим вариантом будет рассмотреть возможность использование пулов соединений. Такой вариант окажется самым производительным и эффективным.

Создание и закрытие соединений потребляет много времени и ресурсов. Но если у вас используется много одновременных запросов, то имеет смысл открывать и закрывать соединения под каждый запрос.

→ Ссылка