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 aquesta secció, explorarem què són els índexs, com funcionen i com es poden utilitzar per millorar el rendiment de les consultes 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 sobre una o més columnes d'una taula i permeten a la base de dades trobar ràpidament les files que compleixen amb determinats criteris de cerca.
Tipus d'índexs
-
Índexs Bàsics:
- Índexs únics: Asseguren que els valors de la columna indexada siguin únics.
- Índexs no únics: Permeten valors duplicats a la columna indexada.
-
Índexs Compostos:
- Creats sobre múltiples columnes d'una taula.
-
Índexs de Text Complets:
- Utilitzats per a cerques de text complet en columnes de text.
-
Índexs Clustered:
- Reorganitzen les dades físiques de la taula per coincidir amb l'ordre de l'índex.
-
Índexs No Clustered:
- No alteren l'ordre físic de les dades de la taula, sinó que creen una estructura separada que apunta a les dades.
Com funcionen els índexs?
Els índexs funcionen de manera similar a l'índex d'un llibre. Quan es crea un índex en una columna, la base de dades crea una estructura que permet accedir ràpidament a les files que contenen els valors de la columna indexada. Això redueix el nombre de files que la base de dades ha de revisar per trobar les dades sol·licitades.
Exemple d'Índex
Suposem que tenim una taula clients
amb les següents columnes:
id | nom | cognom | edat | ciutat |
---|---|---|---|---|
1 | Joan | Pérez | 30 | Barcelona |
2 | Maria | García | 25 | Madrid |
3 | Lluís | Martínez | 35 | València |
4 | Anna | López | 28 | Sevilla |
Si creem un índex sobre la columna cognom
, la base de dades podrà trobar ràpidament tots els clients amb un determinat cognom.
Beneficis dels índexs
-
Millora del Rendiment de les Consultes:
- Els índexs redueixen el temps de resposta de les consultes, especialment en taules grans.
-
Accés Ràpid a les Dades:
- Permeten accedir ràpidament a les files que compleixen amb els criteris de cerca.
-
Optimització de Consultes Complexes:
- Els índexs compostos poden optimitzar consultes que filtren per múltiples columnes.
Desavantatges dels índexs
-
Espai d'Emmagatzematge:
- Els índexs ocupen espai addicional a la base de dades.
-
Temps Addicional en Operacions DML:
- Les operacions d'inserció, actualització i eliminació poden ser més lentes, ja que els índexs s'han d'actualitzar.
-
Manteniment:
- Els índexs requereixen manteniment per assegurar-se que es mantenen eficients.
Exercici Pràctic
Exercici 1: Crear un índex
Crea un índex sobre la columna ciutat
de la taula clients
.
Exercici 2: Consultar amb índex
Executa una consulta per trobar tots els clients de "Barcelona" i observa la millora en el temps de resposta.
Solució
-- Crear l'índex CREATE INDEX idx_ciutat ON clients (ciutat); -- Consultar amb l'índex SELECT * FROM clients WHERE ciutat = 'Barcelona';
Resum
En aquesta secció, hem après què són els índexs, com funcionen i com es poden utilitzar per millorar el rendiment de les consultes SQL. També hem vist els beneficis i desavantatges dels índexs i hem practicat la creació i ús d'índexs en una taula de base de dades. En la següent secció, explorarem com crear i gestionar índexs de manera més detallada.
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
- Utilitzar LIKE per a coincidències de patrons
- Operadors IN i BETWEEN
- Valors NULL i IS NULL
- Agrupar dades amb GROUP BY
- Clàusula HAVING
Mòdul 5: Manipulació de dades
Mòdul 6: Funcions avançades de SQL
Mòdul 7: Subconsultes i consultes niades
- Introducció a les subconsultes
- Subconsultes correlacionades
- EXISTS i NOT EXISTS
- Utilitzar subconsultes en les clàusules SELECT, FROM i WHERE
Mòdul 8: Índexs i optimització del rendiment
- Comprendre els índexs
- Crear i gestionar índexs
- Tècniques d'optimització de consultes
- Analitzar el rendiment de les consultes
Mòdul 9: Transaccions i concurrència
- Introducció a les transaccions
- Propietats ACID
- Instruccions de control de transaccions
- Gestionar la concurrència
Mòdul 10: Temes avançats
Mòdul 11: SQL en la pràctica
- Casos d'ús del món real
- Millors pràctiques
- SQL per a l'anàlisi de dades
- SQL en el desenvolupament web