SQLite : index et recherche rapide de texte

Magazine
Marque
GNU/Linux Magazine
Numéro
116
Mois de parution
mai 2009


Résumé
Lors du premier article, nous avions fait une approche rapide de SQLite, de ses concepts et de son API C. Cette fois-ci, nous allons passer un peu plus de temps sur les index, dont la bonne utilisation est critique pour le design d'une base de données. Nous verrons que ceux-ci ne peuvent pas résoudre tous les problèmes, mais qu'il est simple avec SQLite de combler les faiblesses du langage SQL avec les tables virtuelles, ce que propose le module de recherche rapide de texte FTS3. Nous profiterons aussi de l'occasion pour passer en revue l'API Python, plus simple et flexible que la C, pour réaliser un petit moteur de recherche de documentation.

1. Utilisation et limites des index

Dans SQLite comme dans toute autre base de données, les index permettent de créer un ordre sur les données stockées afin de les retrouver rapidement. Leur fonctionnement est similaire à celui des index de livres : ajouter un ou plusieurs index à la fin d'un livre augmente sa taille, mais permet d'y retrouver des informations données plus facilement. Ainsi, un index alphabétique permet de trouver facilement toutes les pages abordant un sujet, évitant au lecteur d'avoir à parcourir tout le livre pour obtenir le même résultat.

Dans une base de données, le fonctionnement est exactement le même : à moins qu'une colonne ne possède un index, une recherche sur celle-ci nécessitera de parcourir toutes les lignes de la table pour comparer les valeurs recherchées avec les valeurs stockées. En associant, à l'inverse, des indices de ligne aux valeurs qu'elles contiennent, un index bien utilisé permet d'améliorer grandement les…

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous