Ai fini dell'apprendimento forse sì. Ma in un'applicazione reale in esecuzione in un ambiente di produzione non è affatto una situazione ideale.
Normalmente, vorresti sempre avere un pool di connessioni tra la tua applicazione e il database. Indipendentemente dalla lingua/database che stai utilizzando, questa è una soluzione comune.
Un pool di connessioni al database mantiene aperte numerose connessioni. Il livello dell'applicazione prende semplicemente una connessione che non viene utilizzata, le connessioni vengono rilasciate quando il livello dell'applicazione non ne ha più bisogno. Per "rilasciato" intendo che vengono restituiti alla piscina per essere riutilizzati.
In conclusione, le connessioni non sono aperte/chiuse per richiesta. Vengono acquisiti/rilasciati da/al pool di connessioni del database.
Ad esempio, con Python e mysql potresti scegliere PySQLPool .