Els índexs són una part fonamental de l'optimització de bases de dades. Ajuden a accelerar les consultes permetent un accés més ràpid a les dades. En aquest tema, aprendrem com crear i gestionar índexs en SQL.

Què és un índex?

Un índex és una estructura de dades que millora la velocitat de les operacions de recuperació de dades en una taula de base de dades. Els índexs es creen en una o més columnes d'una taula.

Tipus d'índexs

  1. Índexs únics: Asseguren que els valors de la columna indexada siguin únics.
  2. Índexs no únics: Permeten valors duplicats a la columna indexada.
  3. Índexs compostos: Es creen en més d'una columna.
  4. Índexs de text complet: S'utilitzen per a la cerca de text complet en columnes de text.

Crear índexs

Sintaxi bàsica

La sintaxi per crear un índex és la següent:

CREATE INDEX nom_index
ON nom_taula (columna1, columna2, ...);

Exemple pràctic

Suposem que tenim una taula empleats amb les següents columnes: id, nom, cognom, departament, salari.

CREATE TABLE empleats (
    id INT PRIMARY KEY,
    nom VARCHAR(50),
    cognom VARCHAR(50),
    departament VARCHAR(50),
    salari DECIMAL(10, 2)
);

Per crear un índex en la columna departament, utilitzem la següent instrucció:

CREATE INDEX idx_departament
ON empleats (departament);

Índexs únics

Per crear un índex únic, utilitzem la següent sintaxi:

CREATE UNIQUE INDEX nom_index
ON nom_taula (columna1, columna2, ...);

Exemple:

CREATE UNIQUE INDEX idx_nom_cognom
ON empleats (nom, cognom);

Gestionar índexs

Llistar índexs

Per llistar els índexs d'una taula, podem utilitzar la següent consulta (aquesta sintaxi pot variar segons el sistema de gestió de bases de dades):

SHOW INDEX FROM nom_taula;

Exemple:

SHOW INDEX FROM empleats;

Eliminar índexs

Per eliminar un índex, utilitzem la següent sintaxi:

DROP INDEX nom_index
ON nom_taula;

Exemple:

DROP INDEX idx_departament
ON empleats;

Exercicis pràctics

Exercici 1

Crea un índex en la columna salari de la taula empleats.

Solució

CREATE INDEX idx_salari
ON empleats (salari);

Exercici 2

Crea un índex únic en les columnes nom i cognom de la taula empleats.

Solució

CREATE UNIQUE INDEX idx_nom_cognom
ON empleats (nom, cognom);

Exercici 3

Elimina l'índex idx_salari de la taula empleats.

Solució

DROP INDEX idx_salari
ON empleats;

Errors comuns i consells

  1. Crear índexs innecessaris: Crear massa índexs pot degradar el rendiment de les operacions d'inserció, actualització i eliminació. Només crea índexs quan sigui necessari.
  2. No utilitzar índexs compostos correctament: Assegura't que les columnes en un índex compost siguin utilitzades en les consultes de manera que l'índex sigui efectiu.
  3. No mantenir els índexs: Revisa i mantén els índexs regularment per assegurar-te que segueixen sent útils i no afecten negativament el rendiment.

Conclusió

En aquesta secció, hem après com crear i gestionar índexs en SQL. Els índexs són essencials per millorar el rendiment de les consultes, però és important utilitzar-los amb cura per evitar impactes negatius en altres operacions de la base de dades. En el següent tema, explorarem tècniques d'optimització de consultes per millorar encara més el rendiment de les nostres bases de dades.

Curs de SQL

Mòdul 1: Introducció a SQL

Mòdul 2: Consultes bàsiques de SQL

Mòdul 3: Treballar amb múltiples taules

Mòdul 4: Filtratge avançat de dades

Mòdul 5: Manipulació de dades

Mòdul 6: Funcions avançades de SQL

Mòdul 7: Subconsultes i consultes niades

Mòdul 8: Índexs i optimització del rendiment

Mòdul 9: Transaccions i concurrència

Mòdul 10: Temes avançats

Mòdul 11: SQL en la pràctica

Mòdul 12: Projecte final

© Copyright 2024. Tots els drets reservats