Каков наилучший способ обработки соединений (например, к серверу mysql, использующему MySQLdb) в python, который требуется нескольким вложенным функциям? - PullRequest
2 голосов
/ 31 мая 2011

При доступе к базе данных MySQL на низком уровне с помощью python я использую модуль MySQLdb.

Я создаю экземпляр соединения, затем экземпляр курсора, а затем передаю его каждой функции, которой нужен курсор.

Иногда у меня есть много вызовов вложенных функций, все желающие mysql_cursor. Было бы больно инициализировать соединение как глобальную переменную , чтобы я мог сохранить параметр для каждой функции, для которой требуется курсор?

Я могу привести пример, если мое объяснение было недостаточным...

1 Ответ

1 голос
/ 31 мая 2011

Я думаю, что курсоры базы данных - это ограниченные ресурсы, поэтому их передача может ограничить вашу масштабируемость и вызвать проблемы с управлением (например, какой метод отвечает за закрытие соединения)?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...