← Tous les exercices
Indexer la date de publication
Partie 1 · ★★
Le cas précise que la date de publication est un « index important » (et le titre : index pour recherche rapide). Un index évite de parcourir toute la table. EXPLAIN QUERY PLAN (SQLite) montre ce que le moteur compte faire.
Complète la création de l'index idx_marche_date sur date_pub. Le plan avant l'index parcourt la table (SCAN), le plan après utilise l'index.
import sqlite3 con = sqlite3.connect(":memory:", isolation_level=None) con.execute("CREATE TABLE marche(id INTEGER PRIMARY KEY, titre TEXT, date_pub TEXT)") con.executemany("INSERT INTO marche(titre, date_pub) VALUES (?, ?)", [(f"m{i}", f"2024-03-{i % 28 + 1:02d}") for i in range(200)]) req = "SELECT * FROM marche WHERE date_pub = '2024-03-02'" plan_avant = " ".join(str(r) for r in con.execute("EXPLAIN QUERY PLAN " + req)) con.execute("CREATE INDEX idx_marche_date ON marche(___)") plan_apres = " ".join(str(r) for r in con.execute("EXPLAIN QUERY PLAN " + req))
Ctrl/⌘+Entrée