Вы убедились, что это действительно проблема?Я только упоминаю, что, поскольку стоимость открытой базы данных, вероятно, довольно мала, в частности, «открытие», скорее всего, состоит в синхронизации любых ожидающих транзакций, ожидающих базу данных, и выполнении базовой проверки непротиворечивости (особенно при загрузке нескольких страниц сохраненных данных).на диске).
Как только это будет сделано, без каких-либо действий на сервере не будет большого количества данных для обслуживания.
Если подумать, самая базовая функциональностьсистемы БД заключается в управлении кэшированием страниц базы данных с помощью памяти.Когда делается запрос на часть данных, система находит фактическую страницу на ней и проверяет ОЗУ, чтобы определить, загружена ли она.Если нет, он загружает его с диска.
Если вы также заметили, большая часть метаданных БД хранится в базе данных.Это означает, что когда система хочет что-то узнать, она эффективно использует себя для поиска информации, в частности подсистемы кэширования страниц данных.
Как и любой другой кэш, поскольку данные устарели и больше не нужны, они сбрасываютсяпри необходимости верните обратно на диск и обновите.
Таким образом, это означает, что после того, как база данных будет «открыта», любая информация, действительно необходимая для поддержания ее состояния, вероятно, будет поддерживаться через подсистему кэширования данных, а для неиспользуемойбаза данных, выпущенная обратно на диск, чтобы освободить место для текущего трафика.
Вот почему мне любопытно, если вы проверили свои кандидатские БД, чтобы увидеть, сталкивались ли вы с проблемами по этому поводу, или если база данных дажеимеет понятие «открытие базы данных».
Когда мы обсуждаем это как клиент, основное внимание уделяется соединениям с сервером базы данных.Но как только все они будут закрыты, я не думаю, что система собирается сохранить какой-либо значительный объем данных в памяти о конкретной неактивной базе данных.
В конце концов, все (ВСЕ) данныев базе данных хранится «то же самое», таблица представляет собой таблицу, является таблицей, индекс представляет собой индекс, является индексом, особенно на центральном сервере, где все страницы данных управляются как один большой «суп» данных.
Единственная проблема, с которой вы можете столкнуться - это то, что ваша база данных создает файл специально для каждой базы данных, и этот файл остается открытым.В конце концов вы можете исчерпать файловые дескрипторы.
Но большинство современных систем этого не делают, они хранят все в большом массиве файлов независимо от того, в какой базе данных или схеме они находятся (за исключением конкретной таблицы).выделение пространства, которое вы делаете или сервер позволяет, конечно).
Так что, по сути, я не думаю, что это проблема, так как я не думаю, что современные базы данных действительно делают такие различия, которыеВы говорите о себе.Несколько баз данных или схем являются логическим артефактом в системе, а не технической реализацией, и что все страницы данных оказываются в одном и том же кэше и используют одни и те же ресурсы независимо от того, из какой схемы, базы данных, таблицы или индекса они получены..
Я бы проверил выбранную вами базу данных, чтобы убедиться, что это проблема.Например, вы можете создать базы данных 1M, максимально уменьшить объем памяти для базы данных, а затем просто начать циклически проходить через них, открывая столько раз, сколько считаете нужным (10, 100, 1000 и т. Д.), И посмотреть,у вас есть какие-либо проблемы.
Наконец, я не "знаю" ничего из этого для какой-либо конкретной базы данных, это просто инстинкт инстинкта того, как исторически реализованы базы данных.