
Kijk eens wat vaker in de database
Auteur: Thom van den Hork
De meeste applicaties maken gebruik van een of andere database, maar vaak besteden ontwikkelaars niet veel tijd aan het bekijken van deze database. Dit is vooral te wijten aan de opkomst van ORM (Object-Relational Mapping). Door deze techniek hoeft een ontwikkelaar zich niet zo druk te maken over het schrijven van queries, want dit wordt voor je gedaan. Als developer hoef jij je alleen maar bezig te houden met het omschrijven van de velden die je wilt hebben en het ORM doet het werk voor je.
Het gemak en de valkuilen van ORM
Hoewel we niet gelijk willen beweren dat dit uitsluitend negatieve gevolgen heeft, want het kan enorm helpen bij de snelheid van het ontwikkelen. Het komt ook de leesbaarheid van de code ten goede, want lange en ingewikkelde queries zijn niet meer zichtbaar. Toch kleeft er ook een negatieve kant aan het gemak. Veel jonge ontwikkelaars zijn gewend geraakt aan het werken met ORM en hebben niet eens database-software geïnstalleerd om de database te bekijken. Maar wat ga je dan doen als je tegen problemen aanloopt?
Prestatieproblemen bij groeiende applicaties
Naarmate de complexiteit van je applicatie toeneemt, bestaat er een kans dat de structuur die het ORM aanhoudt niet meer de optimale is. Tijdens de ontwikkeling werkt alles nog wel zoals je zou verwachten, maar eenmaal in productie beginnen de problemen. Hoe meer items in de database worden toegevoegd, hoe langzamer de applicatie begint te worden. Veel ontwikkelaars duiken op dat moment in de code, om te kijken of ze daar het een en ander kunnen optimaliseren. Aan de ene kant logisch, maar eigenlijk ook weer niet. Met de code is waarschijnlijk niet zoveel mis, want met weinig data was het snel genoeg. Grote kans dat het probleem in de database zit.
Het belang van database-indexen
Een mooi moment dus om database-software te installeren en te kijken wat er zich onder de motorkap afspeelt. Een veelvoorkomend probleem met afname van snelheid bij toename van data, is het ontbreken van indexes. Hiermee vertel je de database eigenlijk dat er bepaalde velden zijn die je vaak gaat gebruiken om data te zoeken, denk bijvoorbeeld aan een gebruikersnaam bij gebruikers. De database gaat deze velden dan indexeren, waardoor het zoeken vele malen sneller gaat. Indexes zijn voor veel ontwikkelaars die gebruikmaken van ORM iets magisch, want ze gaan er eigenlijk vanuit dat dit voor ze wordt geregeld. Door regelmatig een kijkje in je database te nemen en simpele queries uit te voeren, kun je dit soort ongemakken voorkomen.
Werken met een bestaande database
Maar naast je eigen database die je hebt opgezet met ORM, is er nog een voorbeeld waarin het erg belangrijk is dat je weet wat er gaande is in de database. Soms moet je een nieuwe applicatie maken, maar moet je gebruik maken van een database die vol staat met data die niet verloren mag gaan. Het is in dit geval zeker belangrijk om de tabellen te kunnen lezen en begrijpen. De kans is namelijk erg groot dat de bestaande structuur afwijkt van de structuur die je zelf zou kiezen. Als je nu wat vaker in de database had gekeken, zou dit geen probleem zijn geweest.
Conclusie: een snelle applicatie begint bij een goed ingerichte database
Natuurlijk zijn er nog veel meer voorbeelden te noemen waarom je als ontwikkelaar een kijkje in de database zou moeten nemen, maar wij denken dat de boodschap wel duidelijk genoeg is. Een database is vaak een essentieel onderdeel van de applicatie en het is belangrijk dat deze goed in elkaar zit, want een goede en snelle database zorgt er vaak ook voor dat de applicatie snel is. Wees niet bang en kijk eens wat vaker in de database.