Toon posts:

[JAVA] Data uit database cachen in applicatie?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit al een tijdje met een vraag.
Op school heb ik de basis-dingen van java geleerd en thuis knutsel ik er af en toe eens lekker op los. De applicaties die ik schrijf halen meestal hun data uit een database en schrijven dat daar ook in weg. Op school heb ik echter geleerd om veel informatie uit de database te trekken en in je applicatie te laden. Ik krijg echter steeds vaker het idee dat dit een beetje overbodig is en veel ruimte eet.

Voorbeeld:
in de database staan van een verschillende school alle opleidingen. Ook staan alle gegevens van de leerlingen erin en welke leerling op welke opleiding zitten.

Op school is mij aangeleerd om bij het opstarten van de applicatie voor iedere opleiding een object te laden. Binnen dat object worden weer alle leerlingen opgeslagen in een vector. Etc...

Wanneer ik dan van een bepaald opleiding de leerlingen wil zien, dan haal ik dit direct uit de vector van die opleiding. Dat werkt opsich goed. Toch kan ik me voorstellen om pas DAN alle leerlingen van die opleiding op te vragen en tijdelijk in een vector te zetten.

Waaraan wordt over het algemeen de voorkeur gegeven, en zit er verschil in wanneer het gaat om een webapplicatie of niet.

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:17
Verwijderd schreef op woensdag 27 april 2005 @ 21:54:
Voorbeeld:
in de database staan van een verschillende school alle opleidingen. Ook staan alle gegevens van de leerlingen erin en welke leerling op welke opleiding zitten.

Op school is mij aangeleerd om bij het opstarten van de applicatie voor iedere opleiding een object te laden. Binnen dat object worden weer alle leerlingen opgeslagen in een vector. Etc...
Hum, dat zal best traag gaan als je veel opleidingen en leerlingen hebt. 8)7
Haal alleen gegevens uit de DB als ze gerequest worden.
Daarbij is het onzinnig om gegevens op te halen als je ze nog niet nodig hebt. Wie zegt dat je ze ooit nodig hebt? Zoek ook eens op de term 'lazy loading'.

En ik zou zowiezo enkel een opleiding of een leerling uit de DB halen als de gebruiker daar om vraagt.

https://fgheysels.github.io/


Verwijderd

Topicstarter
thnx, ik begon al steeds meer aan dat idee te denken ja!

Verwijderd

Mwah, je ziet wel vaker dat gegevens alvast geladen worden op de verwachte kans dat iets opgevraagd zal worden. Wanneer die kans boven een bepaalde drempel uitkomt zullen de gegevens alvast gecached worden. Opgevraagde gegevens worden vaak ook tijdelijk opgeslagen en na een aantal acties/interacties door de garbagecollector weggegooid.
Stel je app. laat 100 records per pagina zien en heeft een paginering mechanisme waarbij de content voor een volgende pagina alvast in de cache gezet wordt.

// edit
Bij systemen met meerdere gebruikers is dit echter niet slim. De reden mag wel duidelijk zijn...

[ Voor 10% gewijzigd door Verwijderd op 27-04-2005 22:11 ]


Verwijderd

Hee (ex)klasgenoot. Ja, haagse hogeschool... wat wil je nog meer... ;)

Maar het is inderdaad gekkenwerk om alles in een vector te gooien om het maar bijdehand te hebben. Stel je applicaties voor met 10000en records en dat je dat ook nog 's over een lijntje moet gooien, dan ben je sapdrinkenderwijs niet goed bezig.

Ik zou ook gewoon alleen die dingen ophalen die je nodig hebt, en sommige dingen die bijna niet veranderen (maar waar je wel vaak uit leest) kan je wel aan het begin laden als het niet te veel is.

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Tsja, er is in beide gevallen wat voor te zeggen. Dat hangt ook een beetje van het doel van je applicatie af. Ik kan me er ook iets bij voorstellen dat het laden iets langer 'mag' duren zodat je daarna zonder veel 'laadwerk' de gevraagde gegevens kan ophalen. Persoonlijk zou ik me er dan meer aan irriteren om langer te moeten wachten als ik bepaalde gegevens opvraag op dat moment ipv dat ze direct voor me beschikbaar zijn. Aan de andere kant is het natuurlijk de vraag in hoeverre gegevens veel opgevraagd worden.

[ Voor 3% gewijzigd door stp_4 op 27-04-2005 23:54 ]

stp - PSN ID: stp_4

Pagina: 1