Index
#Indexes
Accélèrent la recherche au prix d'espace et de coûts d'écriture. Ils servent surtout aux clauses WHERE
, JOIN
et tri.
sqlsql
1create table t(id int, x int);2insert into t values (1,10),(2,20),(3,30);3create index if not exists idx_t_x on t(x);4-- La requête peut utiliser l'index sur x5select * from t where x >= 20;
Note: Dans SQLite en WASM, on ne peut pas inspecter facilement le plan d’exécution, mais le principe reste valable.
#Playground
#Animation: recherche via B-Tree (concept)
1. Page racine
Lire la page racine de l'index; décider de la branche à suivre selon les clés.
Étape 1 / 5
#Exercice : Comparaison de performances avec et sans index
Comparez les performances de requêtes SQL avec et sans index sur une table de grande taille.
#Instructions
- Créez une table avec un grand nombre d'enregistrements.
- Exécutez une requête de recherche sans index et mesurez le temps.
- Créez un index approprié et réexécutez la même requête.
- Comparez les performances et expliquez les différences.
#Exemple de requête
sqlsql
1-- Création d'une table de test avec beaucoup de données2create table test_performance(id int, name text, category int);3 4-- Insertion de données de test (simulation)5WITH RECURSIVE6 cnt(x) AS (7 SELECT 18 UNION ALL9 SELECT x+1 FROM cnt10 LIMIT 1000011 )12INSERT INTO test_performance 13SELECT x, 'Name' || x, x % 100 FROM cnt;14