Els índexs són una part fonamental de qualsevol base de dades, ja que permeten millorar significativament el rendiment de les consultes. En aquest tema, aprendrem què són els índexs, com crear-los a MongoDB i com utilitzar-los de manera efectiva.
Què és un Índex?
Un índex és una estructura de dades que millora la velocitat de les operacions de lectura en una col·lecció. Els índexs permeten a MongoDB trobar documents amb més rapidesa i eficiència, evitant la necessitat de fer una cerca completa en cada document de la col·lecció.
Avantatges dels Índexs
- Millora del Rendiment: Redueix el temps de resposta de les consultes.
- Optimització de Consultes: Permet a MongoDB utilitzar el millor camí per accedir a les dades.
Desavantatges dels Índexs
- Espai Addicional: Els índexs ocupen espai addicional en el disc.
- Cost d'Actualització: Les operacions d'escriptura poden ser més lentes, ja que els índexs han de ser actualitzats.
Creant Índexs a MongoDB
Índexs Simples
Un índex simple és un índex en un sol camp. Per crear un índex simple, utilitzem el mètode createIndex()
.
En aquest exemple, estem creant un índex ascendent en el camp name
. El valor 1
indica que l'índex és ascendent. Si volguéssim un índex descendent, utilitzaríem -1
.
Índexs Compostos
Un índex compost és un índex en múltiples camps. Això pot ser útil quan les consultes sovint filtren per més d'un camp.
// Creant un índex compost en els camps "name" i "age" db.collection.createIndex({ name: 1, age: -1 });
En aquest exemple, estem creant un índex ascendent en el camp name
i un índex descendent en el camp age
.
Índexs Únics
Un índex únic assegura que els valors en el camp indexat siguin únics en tota la col·lecció.
// Creant un índex únic en el camp "email" db.collection.createIndex({ email: 1 }, { unique: true });
Aquest índex assegura que no hi hagi dos documents amb el mateix valor en el camp email
.
Verificant Índexs
Podem veure els índexs existents en una col·lecció utilitzant el mètode getIndexes()
.
Aquest mètode retorna una llista de tots els índexs creats en la col·lecció.
Eliminant Índexs
Si necessitem eliminar un índex, podem utilitzar el mètode dropIndex()
.
Aquest mètode elimina l'índex especificat en el camp name
.
Exercicis Pràctics
Exercici 1: Creant un Índex Simple
- Crea una col·lecció anomenada
users
. - Insereix diversos documents amb els camps
name
iage
. - Crea un índex en el camp
name
.
// Solució db.users.insertMany([ { name: "Alice", age: 25 }, { name: "Bob", age: 30 }, { name: "Charlie", age: 35 } ]); db.users.createIndex({ name: 1 });
Exercici 2: Creant un Índex Compost
- Crea un índex compost en els camps
name
iage
en la col·leccióusers
.
Exercici 3: Creant un Índex Únic
- Insereix diversos documents amb el camp
email
en la col·leccióusers
. - Crea un índex únic en el camp
email
.
// Solució db.users.insertMany([ { name: "Alice", age: 25, email: "[email protected]" }, { name: "Bob", age: 30, email: "[email protected]" } ]); db.users.createIndex({ email: 1 }, { unique: true });
Errors Comuns i Consells
-
Error: Intentar inserir un document amb un valor duplicat en un camp amb un índex únic.
- Solució: Assegura't que els valors en els camps indexats com a únics siguin realment únics abans d'inserir-los.
-
Consell: Utilitza índexs compostos quan les consultes filtren per més d'un camp per millorar el rendiment.
Conclusió
En aquesta secció, hem après què són els índexs, com crear-los i utilitzar-los a MongoDB. Els índexs són essencials per optimitzar el rendiment de les consultes i assegurar que les operacions de lectura siguin ràpides i eficients. En el següent tema, explorarem els diferents tipus d'índexs disponibles a MongoDB i com utilitzar-los de manera efectiva.
Curs de MongoDB
Mòdul 1: Introducció a MongoDB
Mòdul 2: Operacions CRUD a MongoDB
Mòdul 3: Modelatge de Dades a MongoDB
Mòdul 4: Indexació i Agregació
Mòdul 5: Funcions Avançades de MongoDB
Mòdul 6: Rendiment i Seguretat
- Optimització del Rendiment
- Còpia de Seguretat i Restauració
- Millors Pràctiques de Seguretat
- Monitorització i Alertes