He creado una biblioteca en Python que contiene funciones para acceder a una base de datos. Esta es una biblioteca de contenedor alrededor de una base de datos de aplicaciones de terceros, escrita debido al hecho de que la aplicación de terceros no ofrece una API decente. Ahora originalmente dejé que cada función abriera una conexión de base de datos durante la duración de la llamada a la función, lo cual estuvo bien, hasta que la lógica de mi programa usó llamadas anidadas a las funciones donde luego llamaría a una función en particular unas pocas miles de veces. Esto no fue muy eficiente. El perfil de esto mostró que la sobrecarga estaba en la configuración de la conexión de la base de datos, una vez por llamada a la función. Así que moví la conexión abierta desde dentro de las funciones al módulo en sí, para que la conexión de la base de datos se abriera cuando se importó el módulo de la biblioteca. Esto me dio un rendimiento aceptable.
Ahora tengo dos preguntas con respecto a esto. En primer lugar, ¿debo preocuparme de que ya no cierre explícitamente la conexión de la base de datos y cómo podría hacerlo explícitamente con esta configuración? En segundo lugar, ¿lo que he hecho se acerca al ámbito de las buenas prácticas y cómo podría abordar esto?
openConnfunción y haga que el usuario la pase a cada función que llame, de esa manera puede ver la conexión en unawithdeclaración o lo que sea