Sobes.tech
Junior

Welke soorten indexen bestaan er in databases?

sobes.tech AI

Antwoord van AI

De belangrijkste typen indexen in databases:

  1. B-tree (B+boom):

    • Het meest voorkomende type.
    • Geschikt voor een breed scala aan operaties: bereikzoek, exacte overeenstemming, sortering.
    • Standaard in veel DBMS (MySQL, PostgreSQL, Oracle).
  2. Hash-indexen:

    • Gebaseerd op een hash-tabel.
    • Zeer snel voor zoeken op exacte overeenstemming (=).
    • Niet geschikt voor bereikzoek (BETWEEN, <, >), sortering (ORDER BY) of patroonzoek (LIKE).
  3. Full-text indexen:

    • Ontworpen voor zoeken in tekstvelden (BLOB, TEXT).
    • Stellen je in staat om woorden of zinnen te zoeken, synoniemen te overwegen en morfologische analyse uit te voeren.
    • Voorbeelden: MATCH...AGAINST in MySQL/MariaDB, tsvector/tsquery in PostgreSQL.
  4. Ruimtelijke indexen (R-tree):

    • Gebruikt voor het indexeren van geografische of ruimtelijke gegevens.
    • Maakt het mogelijk om objecten binnen een bepaald gebied of grenzen efficiënt te vinden.
  5. Bitmap (bitskaart) indexen:

    • Gebruikt in sommige DBMS (bijvoorbeeld Oracle, PostgreSQL).
    • Geschikt voor velden met lage kardinaliteit (weinig unieke waarden, bijvoorbeeld geslacht, status: actief/inactief).
    • Kan zeer efficiënt zijn voor complexe queries met AND en OR operaties.
  6. Gestructureerde index (geclusterd):

    • Beïnvloedt de fysieke volgorde van gegevensopslag van de rijen in de tabel.
    • Er kan slechts één gestructureerde index per tabel zijn.
    • Vaak gebruikt voor de primaire sleutel.
  7. Niet-gestructureerde index (niet-geclusterd):

    • Bepaalt niet de fysieke volgorde van de rijen.
    • Bevat pointers naar de fysieke locatie van de gegevensrijen.
    • Een tabel kan meerdere niet-gestructureerde indexen hebben.
  8. Covering (bedekkende) index:

    • Een index die alle kolommen bevat die nodig zijn voor het uitvoeren van een query, inclusief kolommen in SELECT, voorwaarden in WHERE en ORDER BY.
    • Maakt dat de DBMS niet hoeft te zoeken naar de tabelgegevens, wat de uitvoering versnelt.
  9. Functionele (uitdrukking) index:

    • Index gebaseerd op het resultaat van een functie of uitdrukking op één of meerdere kolommen.
    • Maakt het mogelijk om berekende waarden te indexeren.

Bij het kiezen van het indextype wordt rekening gehouden met het gegevenstype, de frequentie en aard van de queries (zoeken op exacte waarde, bereik, sortering, full-text zoeken, enz.) en de kardinaliteit van de kolom.