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 performances...

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


Article rédigé par

Par le(s) même(s) auteur(s)

Conception et vie d'un programme, partie 4 : exécution et interaction avec le noyau

Magazine
Marque
GNU/Linux Magazine
Numéro
132
Mois de parution
novembre 2010
Résumé
Après avoir étudié les différentes formes et transformations d'un programme depuis le code source jusqu'à l'exécutable chargé, il nous reste à nous intéresser aux mécanismes qui régissent son exécution. Celle-ci doit s'effectuer dans un cadre très strict, contrôlé à outrance par un autre programme qui joue le rôle d'autorité du système : le noyau.

Conception et vie d'un programme, partie 3 : chargement d'un exécutable

Magazine
Marque
GNU/Linux Magazine
Numéro
130
Mois de parution
septembre 2010
Résumé
Au cours des précédents articles, nous nous sommes familiarisés avec les étapes permettant de construire un programme binaire ainsi qu'avec le format ELF dans lequel il est stocké sur le disque. Ce mois-ci, nous allons découvrir comment le système charge ce format en vue de son exécution.

Conception et vie d'un programme : le format ELF

Magazine
Marque
GNU/Linux Magazine
Numéro
129
Mois de parution
juillet 2010
Résumé

Dans le précédent article, nous avions disséqué le processus de compilation d'un programme et étudié les différents états qu'il traverse. Mais le fichier binaire obtenu à la fin de cette chaîne nous semble bien opaque... Pourtant, bien que la distinction soit toujours faite entre fichiers « programmes » exécutables et fichiers « classiques » de données, les premiers ne sont guère différents des seconds en ce qu'ils obéissent à un format bien précis et sont gérés par un programme tiers, le chargeur. Afin de mieux comprendre ce qui fait un programme, nous allons dans le présent article disséquer le format exécutable ELF utilisé par Linux et de nombreux autres systèmes d'exploitation.

Les derniers articles Premiums

Les derniers articles Premium

Brève introduction pratique à ZFS

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Il est grand temps de passer à un système de fichiers plus robuste et performant : ZFS. Avec ses fonctionnalités avancées, il assure une intégrité des données inégalée et simplifie la gestion des volumes de stockage. Il permet aussi de faire des snapshots, des clones, et de la déduplication, il est donc la solution idéale pour les environnements de stockage critiques. Découvrons ensemble pourquoi ZFS est LE choix incontournable pour l'avenir du stockage de données.

Générez votre serveur JEE sur-mesure avec Wildfly Glow

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Et, si, en une ligne de commandes, on pouvait reconstruire son serveur JEE pour qu’il soit configuré, sur mesure, pour les besoins des applications qu’il embarque ? Et si on pouvait aller encore plus loin, en distribuant l’ensemble, assemblé sous la forme d’un jar exécutable ? Et si on pouvait même déployer le tout, automatiquement, sur OpenShift ? Grâce à Wildfly Glow [1], c’est possible ! Tout du moins, pour le serveur JEE open source Wildfly [2]. Démonstration dans cet article.

Les listes de lecture

9 article(s) - ajoutée le 01/07/2020
Vous désirez apprendre le langage Python, mais ne savez pas trop par où commencer ? Cette liste de lecture vous permettra de faire vos premiers pas en découvrant l'écosystème de Python et en écrivant de petits scripts.
11 article(s) - ajoutée le 01/07/2020
La base de tout programme effectuant une tâche un tant soit peu complexe est un algorithme, une méthode permettant de manipuler des données pour obtenir un résultat attendu. Dans cette liste, vous pourrez découvrir quelques spécimens d'algorithmes.
10 article(s) - ajoutée le 01/07/2020
À quoi bon se targuer de posséder des pétaoctets de données si l'on est incapable d'analyser ces dernières ? Cette liste vous aidera à "faire parler" vos données.
Voir les 64 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous