hi
ist zwar schon beantwortet worden, ich möchte es aber mal präzisiern:
eine offene connection benötigt zumindest einen filehandle für die netzverbindung und zusätzliche eine gewisse menge an hauptspeicher. je nach db-system (in deinem fall also mysql - nur da bin ich kein experte) kann man pro connection ev. noch einen betriebssystemprozess offen haben.
all das kann bewirken, dass man recht schnell in einen engpass reinläuft, wenn man connections nicht sauber schließt. im linux z.b. darf ein normaler benutzer standardmässig nur 1000 filehandles offen halten (gilt zumindest für einen standard-sles9-installation, andere distributionen handhaben das ev. anders). unter linux kann ein filehandle recht viel sein - auch eine netzverbindung. kann also sein, dass deine anwendung auf einmal nicht mehr funktioniert weil keine freien filehandles mehr da sind - obwohl noch massig hauptspeicher etc. verfügbar wären.
abgesehen davon gehört es einfach nicht zu einem guten programmierstil, ressourcen unnötig lange zu blockieren. programme, die so programmiert sind, neigen stark dazu, nicht gut zu skalieren - sie laufen bei geringer userlast recht gut und knicken bei steigender userlast dann drastisch ein. „sauber“ programmierte software verträgt meist mehr gleichzeitige benutzer.
was anderes: offene sessions blockieren nicht nur systemressourcen sondern halten ev. auch irgendwelche locks in der db. sofern du brav deine transaktionen beendest, kann da praktisch nichts passieren. nur tendieren leute, die ressourcen nicht sofort freigeben, auch dazu, transaktionen länger als notwendig offen zu halten, was ziemlich drastische auswirkungen haben kann.
lg
erwin