Voeg indexen toe

Nut van een index

Bij grote tabellen kan een index de performance verbeteren. Een index kan
  1. rows uniek maken met enkelvoudige of compound keys
  2. Zoekacties versnellen op
    • data waarden of keys
    • foreign keys, die u in TNF met een sterretje gemerkt hebt. Dit soort indexen kan vooral joins erg versnellen.
    • een combinatie van data waarden, keys en foreignkeys.
  3. een tabel sorteren

Hoe werkt een index?

Een index verwijst naar pagina's binnen een tabel
    Een index
  • is gesorteerd op key waarden, (die niet hetzelfde hoeven te zijn als die van de tabel)
  • is klein, heeft slechts enkele kolommen van de tabel.
  • verwijst voor een keywaarde naar het juiste blok binnen de tabel.
  • maakt het lezen van een row sneller, als je de juiste zoekargumenten weet.

Tips

  • Zet het meest unieke datelement voorop in de index, het element dat de meest verschillende waardes heeft. De index kan dan sneller de juiste bladzijde vinden. Liever postcode-land dan land-postcode.
  • Hou indexen klein. Liever een index op alleen postcode, dan op postcode-land. Hoe kleiner de index des te beter de response tijd.
  • Voor hoogfrequente leesfuncties (duizenden keren per dag) kan het verstandig zijn om juist een erg uitgebreide index te maken zodat het systeem voor de leesfunctie de tabel niet eens nodig heeft.
  • Voor kleine tabellen is een index nadelig. Het systeem kan dan voor iedere functie beter de hele tabel doorlopen. Een index zou alleen maar ophouden.
  • Het heeft geen zin om een index te maken voor een functie die toch de hele tabel doorgaat. Het is dan efficiënter om zonder index heel de tabel door te lopen.

    U spaart dan bovendien de extra index processing uit bij toevoegen, wijzigen en verwijderen.

  • Maak voor elke index een kosten-baten analyse. Weegt de snellere leesfunctie op tegen de tragere toevoegen/wijzigen/verwijderen?

    Hou rekening met de frequentie en zwaarte van de functies. Een lichte leesfunctie met een frequentie van 10.000x per dag heeft meer gewicht dan een zware verwijder functie van 1x per maand.

Pas op Een index vertraagt toevoegen, wijzigen en verwijderen. Niet alleen de tabel, maar ook de index moet bijgewerkt worden.

Leg dus bij voorkeur een index op waarden waarmee wel veel gezocht wordt, maar die niet veel veranderen. Liever een index op bankrekeningnummer dan op saldo.