meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
admin:testbase:test001 [2026/01/23 09:22] – [Correctif] nicolasadmin:testbase:test001 [2026/01/23 09:55] (Version actuelle) – [Correctif] nicolas
Ligne 15: Ligne 15:
 **Si l'erreur persiste ne pas continuer à utiliser la base et informer au plus vite les techniciens de Logeas Informatique** **Si l'erreur persiste ne pas continuer à utiliser la base et informer au plus vite les techniciens de Logeas Informatique**
 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, avec un pointeur vers les lignes correspondantes de la table.
 +  * 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`, sans toucher aux données elles-mêmes.
 +
 +===== 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);
 +