Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 13, 2010 22:36:26

azecm
От:
Зарегистрирован: 2008-02-06
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

подключение к базе данных PostgreSQL

можно ли
- сохранять подключение к базе данных в памяти
- и могут ли через одно подключение работать несколько пользователей
например

import psycopg2

dbc=get_memory('postresql')
if not dbc:
dbc = psycopg2.connect(…)
set_memory('postresql', dbc)

и далее работа с подключением без его закрытия

какие есть негативные последствия такого решения?



Офлайн

#2 Фев. 14, 2010 05:56:42

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

подключение к базе данных PostgreSQL

azecm
сохранять подключение к базе данных в памяти
А зачем?
azecm
могут ли через одно подключение работать несколько пользователей
Я не совсем понял термин “пользователи” в данном контексте.

Может быть вам будет достаточно ThreadedConnectionPool из той же библиотеки?

ЗЫ
Держать подключение или даже несколько подключений активными - это нормально. Просто учитывайте ваши мощности и соотносите их с нагрузкой на БД и настройками СУБД, которые будут учитывать специфику задачи (например, время жизни неактивного подключения).



Офлайн

#3 Фев. 14, 2010 16:14:47

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

подключение к базе данных PostgreSQL

я думаю автор хочет использовать одно подключение для обращения от всех клиентов (сохранив его в память), вместо подключения к базе на каждое обращение пользователя, таким образом сэкономив время на подключениях.

Офлайн

#4 Фев. 15, 2010 02:27:59

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

подключение к базе данных PostgreSQL

Дело в том, что СУБД может прекрасно по таймауту убить неактивное соединение и автор получит эксепшн.
Если под пользователями автор подразумевал клиентов, то, собственно, велосипед здесь не нужен и можно использовать пул соединений.

И еще. В общем случае, я бы не делал только 1 соединения, которое обслуживает всех клиентов - это решение плохо масштабируется. Да и экономия соединений не имеет смысла для современных СУБД.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version