meta données pour cette page
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| admin:testbase:test001 [2026/01/23 09:22] – [Correctif] nicolas | admin:testbase:test001 [2026/01/23 09:55] (Version actuelle) – [Correctif] nicolas | ||
|---|---|---|---|
| Ligne 15: | Ligne 15: | ||
| **Si l' | **Si l' | ||
| Cette approche permet de maintenir la fiabilité d’une base SQLite, même lorsqu’elle a été soumise à des conditions d’utilisation difficiles, tout en limitant le risque de perte de données. | Cette approche permet de maintenir la fiabilité d’une base SQLite, même lorsqu’elle a été soumise à des conditions d’utilisation difficiles, tout en limitant le risque de perte de données. | ||
| + | ===== Qu’est-ce qu’un index dans une base de données ? ===== | ||
| + | |||
| + | Un index est une structure spéciale qui améliore la rapidité des recherches et des tris dans une table. | ||
| + | On peut le comparer à l’index à la fin d’un livre : au lieu de parcourir toutes les pages pour trouver un mot, on regarde directement dans l’index pour savoir où aller. | ||
| + | |||
| + | ===== Dans une base SQLite ===== | ||
| + | |||
| + | * Chaque table peut avoir zéro ou plusieurs index. | ||
| + | * Un index est créé sur une ou plusieurs colonnes, par exemple `Nom` ou `Email`. | ||
| + | * Il stocke les valeurs de ces colonnes dans un ordre particulier, | ||
| + | * Lorsqu’une requête fait une recherche ou un tri sur ces colonnes, SQLite peut utiliser l’index pour accéder rapidement aux données, sans lire toute la table. | ||
| + | |||
| + | ===== Qu’est-ce que REINDEX ? ===== | ||
| + | |||
| + | La commande **REINDEX** permet de reconstruire les index d’une base SQLite. | ||
| + | Les index peuvent parfois se corrompre à cause : | ||
| + | * d’arrêts imprévus ou de plantages, | ||
| + | * de problèmes matériels (disque ou mémoire), | ||
| + | * ou de modifications structurelles de la base (migration, scripts). | ||
| + | |||
| + | **REINDEX** recrée les index à partir des données réelles, ce qui répare la plupart des incohérences détectées par `PRAGMA integrity_check`, | ||
| + | |||
| + | ===== Syntaxe de base ===== | ||
| + | |||
| + | * Réindexer toute la base : | ||
| + | ````sql | ||
| + | REINDEX; | ||
| + | ```` | ||
| + | * Réindexer une table spécifique (tous ses index) : | ||
| + | ````sql | ||
| + | REINDEX nom_table; | ||
| + | ```` | ||
| + | * Réindexer un index précis : | ||
| + | ````sql | ||
| + | REINDEX nom_index; | ||
| + | ```` | ||
| + | |||
| + | ===== Exemple concret ===== | ||
| + | |||
| + | Supposons que nous avons une table `Clients` : | ||
| + | |||
| + | ````sql | ||
| + | CREATE TABLE Clients ( | ||
| + | ID INTEGER PRIMARY KEY, | ||
| + | Nom TEXT, | ||
| + | Email TEXT | ||
| + | ); | ||
| + | |||
| + | CREATE INDEX idx_clients_nom ON Clients(Nom); | ||
| + | |||