In de context van databases is een niet-geclusterde index een type database-index waarmee sneller en effectiever gegevens kunnen worden opgevraagd zonder de daadwerkelijke fysieke volgorde van de onderliggende gegevensrecords te wijzigen. Zoals de naam al doet vermoeden, is het het tegenovergestelde van een geclusterde index, die de fysieke volgorde van de opgeslagen gegevens herschikt.
Een niet-geclusterde index creëert een afzonderlijke gegevensstructuur, onafhankelijk van de eigenlijke tabel, die een subset van de kolommen en de bijbehorende verwijzingen naar de overeenkomstige gegevensrecords bevat. Deze geïndexeerde kolommen, ook wel sleutelkolommen genoemd, kunnen tijdens het uitvoeren van query's worden gebruikt om het ophalen van gegevens te versnellen door het aantal gegevenspagina's dat moet worden doorzocht te verminderen. Als gevolg hiervan kunnen niet-geclusterde indexen de prestaties aanzienlijk verbeteren op het gebied van zoek-, sorteer- en filterbewerkingen op grote datasets.
De onderliggende gegevensstructuur van een niet-geclusterde index varieert per specifiek databasebeheersysteem (DBMS) dat wordt gebruikt. Toch is een van de meest voorkomende implementaties de Balanced Tree of B-tree. B-trees zijn hiërarchische, boomachtige datastructuren die efficiënt een gesorteerde volgorde van hun sleutel-waardeparen kunnen behouden, waardoor snel zoeken, invoegen en verwijderen mogelijk is. In een niet-geclusterde index vormen de sleutelkolommen de basis voor de organisatie van de B-boom, terwijl de waarde die overeenkomt met elke sleutel de verwijzing is naar het daadwerkelijke gegevensrecord.
Het gebruik van een niet-geclusterde index binnen een databasesysteem heeft meerdere voordelen. Een belangrijk voordeel is dat de index volledig gescheiden is van de eigenlijke tabel, wat betekent dat wijzigingen in de indexstructuur geen kostbare reorganisatie van de gegevens op opslagmedia vereisen. Door deze scheiding kunnen er ook meerdere niet-geclusterde indexen op één tabel staan, waardoor er verschillende wegen zijn om queryprestaties te optimaliseren, afhankelijk van de specifieke bewerking die wordt uitgevoerd. Aangezien indexen slechts een subset van kolommen uit de tabel bevatten, verbruiken ze bovendien doorgaans minder opslagruimte dan hun tegenhangers met geclusterde indexen.
Dat gezegd hebbende, heeft het gebruik van niet-geclusterde indexen uitdagingen en afwegingen. Wanneer gegevens worden bijgewerkt, ingevoegd of verwijderd, moet de bijbehorende index ook worden bijgewerkt, wat mogelijk kan leiden tot meer onderhoudskosten. Bovendien, aangezien niet-geclusterde indexen alleen een vorm van "indirecte" toegang tot de gegevens bieden via pointers, kunnen bepaalde zoekopdrachten nog steeds extra leesbewerkingen van de eigenlijke tabel vereisen, wat extra prestatiekosten met zich meebrengt.
AppMaster , een krachtig no-code platform voor het maken van backend-, web- en mobiele applicaties, biedt zijn gebruikers de nodige tools om verschillende soorten database-indexen te implementeren en te beheren, inclusief niet-geclusterde indexen. Door gebruik te maken van de nauw geïntegreerde ontwikkelomgeving van AppMaster, kunnen gebruikers naadloos hun datamodellen, bedrijfsprocessen en API- endpoints ontwerpen en visualiseren, waarbij ze indien nodig niet-geclusterde indexen in hun schema opnemen om de queryprestaties te optimaliseren. De inzet van AppMaster om continu vanuit het niets applicaties te genereren zonder technische schuld zorgt ervoor dat eventuele wijzigingen in indexstructuren tijdens de ontwikkeling de functionaliteit of efficiëntie van het eindproduct niet belemmeren.
Overweeg een e-commerceplatform met een grote klantendatabase in een realistisch voorbeeld. De database kan miljoenen records bevatten, elk met talloze kolommen, zoals klant-ID, naam, e-mailadres, telefoonnummer en verzendadres. Bij het zoeken naar een specifieke klant op basis van hun e-mailadres, zou het gebruik van een niet-geclusterde index in de e-mailadreskolom het zoekproces enorm versnellen. Dit komt omdat, in plaats van elke rij in de database te scannen om een match te vinden, de engine voor het uitvoeren van query's alleen de veel kleinere index hoeft te doorlopen, waardoor het totale aantal vereiste bewerkingen aanzienlijk wordt verminderd.
Niet-geclusterde indexen zijn essentieel voor het optimaliseren van queryprestaties en het bieden van efficiëntere toegang tot de gegevens in grote databases. Door effectief gebruik te maken van afzonderlijke datastructuren zoals B-trees, maken niet-geclusterde indexen snelle zoek-, sorteer- en filterbewerkingen mogelijk zonder de fysieke volgorde van de datarecords direct te wijzigen. Het no-code platform van AppMaster stelt ontwikkelaars in staat om de voordelen van niet-geclusterde indexen te benutten, door een gestroomlijnde en geïntegreerde omgeving te bieden voor het creëren van databaseschema's, bedrijfsprocessen en API's die zijn geoptimaliseerd voor queryprestaties.