Нужно ли закрывать соединения ZODB только после чтения данных? - PullRequest
4 голосов
/ 11 декабря 2010

Я использую ZODB для моего постоянства объекта Python. Я использую web2py в качестве основы.

Используемая мной база данных ZODB доступна только для чтения. Я написал код для открытия базы данных внутри моих моделей. Затем объект connection.root() кэшируется в оперативной памяти, поэтому он остается там для других запросов.

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

Ответы [ 2 ]

2 голосов
/ 11 декабря 2010

Нет, вам не нужно закрывать его. Каждое открытое соединение потребляет немного памяти и т. Д., Но, похоже, у вас их не будет в любом случае тысячи, только по одному на каждый процесс web2py.

1 голос
/ 27 сентября 2012

Вам не нужно закрывать его, но вы должны регулярно запускать connection.cacheMinimize(), если хотите избежать, чтобы кэшированные объекты пожирали вашу память. Если вы также пишете данные и регулярно делаете коммиты, вы можете пропустить это, так как commit() включает cacheMinimize().

...