Een vraag is in wezen een ondervraging. U vraagt een database om specifieke informatie. Het is niet zomaar een blinde greep naar data. U definieert criteria om de zoekopdracht te verfijnen. De taal die u gebruikt, hangt af van de structuur van de gegevens zelf.
De meeste mensen kennen SQL. Het is de standaard voor relationele databases. Deze systemen slaan informatie op in tweedimensionale tabellen. Maar SQL is niet de enige speler. Er zijn gespecialiseerde talen voor verschillende architecturen.
Overweeg OQL voor objectgeoriënteerde databases. Er is WQuery voor XML-bestanden. Datalog verwerkt deductieve databases. Elk gereedschap past in een specifieke container.
Voorbij de code: zoekopdrachten in zoekmachines
De term ‘query’ is uitgebreid. Het verwijst nu naar wat u in een zoekbalk typt. Wanneer u trefwoorden in Google invoert, genereert u een zoekopdracht. Dit heeft geleid tot discussies over de populairste zoekopdrachten op internet. Er zijn zelfs debatten over het energieverbruik van een enkele Google-zoekopdracht. Het concept is hetzelfde. Je vraagt een systeem om op basis van jouw input relevante data op te halen.
Hoe SQL-query’s daadwerkelijk werken
Laten we eens naar een concreet voorbeeld kijken. Stel je een klantendatabase voor. Het bevat velden zoals voornaam, achternaam, stad, geslacht, leeftijd en burgerlijke staat. U wilt een marketingcampagne targeten. U heeft de namen nodig van getrouwde vrouwen ouder dan 50.
Een SQL-query maakt deze extractie snel. Het ziet er zo uit:
De laatste regel is niet decoratief. Het sorteert de resultaten alfabetisch op achternaam. Zonder dit zou de uitvoer willekeurig kunnen zijn. Dat is nutteloos voor een mailinglijst.
Waarom optimalisatie belangrijk is in professionele omgevingen
In een professionele omgeving zijn databases enorm. Het aantal records kan enorm zijn. Als u een slordige zoekopdracht schrijft, wordt uw systeem langzamer. Dit is waar query-optimalisatie om de hoek komt kijken. Het gaat om efficiëntie. U wilt zo min mogelijk middelen gebruiken.
Hoe bereik je dit? Precisie is de sleutel. Uw SELECT -instructie mag alleen vragen om de gegevens die u daadwerkelijk nodig heeft. Selecteer niet alles als u slechts twee kolommen nodig heeft. Dan is er de ‘WHERE’-clausule. De volgorde van de voorwaarden is van belang. Geef prioriteit aan de meest beperkende filters. Als u eerst op een unieke ID filtert, heeft de database minder werk te doen dan wanneer u eerst op leeftijd filtert.
“Deze strategie heeft tot doel de zoekopdracht op de meest efficiënte manier te schrijven in termen van het verbruik van hulpbronnen.”
Het is een balans tussen het krijgen van het juiste antwoord en het niet door de CPU-cycli heen branden. Een slecht geschreven zoekopdracht kan een server verstoppen. Een geoptimaliseerd exemplaar werkt schoon. Het verschil tussen beide is vaak het verschil tussen een responsieve applicatie en een bevroren applicatie. Je merkt het pas als het kapot gaat. Dan klaagt iedereen.
