Junior
Qu'est-ce que l'indexation dans le contexte des bases de données ou des collections?
sobes.tech IA
Réponse de l'IA
L'indexation est une technique d'optimisation des performances lors de l'extraction de données.
Dans les bases de données, un index est une structure (par exemple, un arbre B) qui permet de trouver rapidement des lignes dans une table sans parcourir toute la table. Il est créé sur une ou plusieurs colonnes.
Dans les collections (par exemple, ArrayList en Java), l'indexation est intégrée. Les éléments sont stockés dans une séquence ordonnée, et l'accès à un élément par son index (son numéro de position) se fait en O(1).
Objectifs principaux de l'indexation :
- Accélérer l'exécution des requêtes : Surtout pour les opérations
SELECTavec des conditionsWHEREetJOIN. - Assurer l'unicité : Les index uniques garantissent que les valeurs dans la colonne indexée ou la combinaison de colonnes seront uniques.
- Prise en charge du tri : Les index peuvent être utilisés pour trier rapidement les résultats (
ORDER BY).
Exemples d'utilisation en SQL :
-- Création d'un index sur la colonne price
CREATE INDEX idx_products_price ON products (price);
-- Création d'un index composite sur les colonnes customer_id et order_date
CREATE INDEX idx_orders_customer_date ON orders (customer_id, order_date);
Dans les collections, accès par index :
// Obtenir un élément par index
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
String firstElement = names.get(0); // Accès par index 0
Inconvénients de l'indexation :
- Occupent un espace disque supplémentaire.
- Les opérations de modification des données (INSERT, UPDATE, DELETE) deviennent plus lentes, car il faut aussi mettre à jour l'index.
- Ne sont pas toujours utilisés par l'optimiseur de requêtes (par exemple, lors d'un scan complet de la table).