170 похожих чатов

Ребят, на сколько долго можно хранить открытым Connection (asyncpg) для

его использования?

8 ответов

8 просмотров

Да в принципе сколько угодно. Конкретно какая причина по которой ты хочешь удерживать его? Большое колличество запросов, или что?

Pavel Glukhov
Да в принципе сколько угодно. Конкретно какая при...

немного обобщу вопрос: в каких случаях лучше создавать каждый раз соединение с бд, а в каких оставлять открытым?

antonio salieri
немного обобщу вопрос: в каких случаях лучше созда...

Если ты не обрабатываешь большое количество запросов, то лучше закрывать соединение после завершения транзакции. Удерживают соединение когда нужно выполнять много запросов, так как открытие нового несёт небольшие расходы по времени. Ещё нормальной практикой считается испозовать пул соединений и переиспользовать их. При небольшой нагрузке открытие и закрытие ты в принципе и не почувствуешь и это будет более оптимально.

🇰 🇦 🇿 🇦 🇭- Автор вопроса
Pavel Glukhov
Если ты не обрабатываешь большое количество запрос...

Вот на данный момент - на стороне бд у меня стоит pgbouncer, и я постоянно создаю новый конект. Но до поры до времени это не создвало проблем. Теперь начались замедления за счет бОльшего кол обращений) Если бы я переиспользовал конект - все было бы куда быстрее

antonio salieri
немного обобщу вопрос: в каких случаях лучше созда...

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

🇰 🇦 🇿 🇦 🇭- Автор вопроса
Alex
Лучше использовать пул соединений, который держит ...

Я же верно понимаю у asyncpg для этого есть - create_pool?)

antonio salieri
немного обобщу вопрос: в каких случаях лучше созда...

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

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
8
Почему никто ещё не написал квантовую виртуальную машину на Windows?
КТ315
7
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
Карта сайта