Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[Programmeerstyle] Open houden van databaseverbinding

Anoniem
gerben
4 antwoorden
  • Ik ben bezig met een programma dat een verbinding met een database heeft (MySQL-database) maar ik vraag me af wat nou beter / netter is als mij programma in idle staat en er geen database handelingen zijn. Moet ik elke keer de verbinding verbreken (db.close();) of kan ik deze gewoon openhouden tot het einde van het programma?

    Groeten,
    Josteman
  • Heb er niet echt veel verstand van, maar het lijkt me dat als je voor security gaat dat je de verbinding sluit. Wanneer je voor snelheid gaat zal je de verbinding open houden.

    Nu weet ik niet wat de merkbare verschillen zijn als je de verbinding sluit. Je kan beiden eens proberen en als je geen verschil in snelheid merkt als je de verbinding sluit dan zou ik daar voor kiezen. Geen merkbaar snelheids verlies en toch geen onnodig openstaande verbindingen.

    René
  • Dat hangt echt af van je persoonlijke voorkeur, maar voor multi-user applicaties is het advies om een database-verbinding af te sluiten zodra je deze niet (meer) nodig hebt. Dit niet alleen wegens veiligsheids-overwegingen maar ook omdat databases beperkingen op het aantal connecties hebben of toestaan.
    Voor een simpele desktop applicatie met locale database maakt het geen reet uit, eigenlijk. Immers, je bent de enige die de database in dat geval gebruikt. En in het algemeen maakt het qua snelheid ook niet veel uit.

    Ikzelf werk meer aan multi-tier applicaties. Daarbij communiceert een client applicatie vie enkele server-componenten met de database. Deze servercomponenten zijn hierbij continu database verbindingen aan het maken en weer vrijgeven. De grap hierbij is echter dat je dan merkt dat de database drivers (BDE, ADO, DB-Express) in het algemeen database-verbindingen nog enige tijd vasthouden (poolen) opdat indien de connectie weer geopend wordt, de verbinding gewoon uit de pool gehaald wordt. (Is dus sneller…)
  • Dank je voor het advies, ik denk dat ik hem dan maar gewoon openhou zoals nu ook het geval is.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.