> Tech > Utilisation des index

Utilisation des index

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

C'est d'abord la qualité de l'indexation qui fait la rapidité d'exécution des requêtes. Il faut donc bien comprendre ce qu'est un index, à quoi il sert et comment il est structuré. Commençons par une métaphore. Imaginez que je vous invite à dîner ce soir chez moi et, en vous quittant,

Utilisation des index

je vous donne rendez-vous à 20 heures et vous signale habiter aux Champs Élysées à Paris [4] . Comme je ne vous ai pas précisé l’immeuble, il vous sera difficile de me trouver.

Le jeu pour vous va consister à rentrer dans tous les halls, frapper à toutes les portes, palabrer quelques instants afin de trouver le bon appartement. Vous venez de comprendre à quoi sert un index ! Les numéros des immeubles dans les rues, parce que les immeubles y ont été ordonnés dans le sens croissant [5], constituent un excellent exemple de ce qu’est un index. Avant que n’entre en vigueur le téléphone [6] automatique, rentrer en communication avec un interlocuteur nécessitait de demander à l’opératrice le nom de la personne ou de l’entreprise et la ville de domiciliation. Petit à petit, avec les cas d’homonymie dans les grandes villes, on se rendit compte que cela n’était pas pratique et on commença d’attribuer des numéros aux abonnés, tout en maintenant la sectorisation par ville.

C’est ainsi que Fernand Raynaud se rendit célèbre avec son "22 à Asnières"… Puis on enrichit le numéro d’une appellation de standard. C’est ainsi que le commissaire Maigret était joignable à BREtagne 38 96 (BREtagne était le nom du standard situé rue de Bretagne et dont on composait les 3 premières lettres à titre d’indicatif. Il desservait quelques dizaines d’artères parisiennes, dont le boulevard Richard Lenoir ou habite Jules Maigret). Puis, le 25 octobre 1985, on rajouta un chiffre en tête. Pour Paris, ce fut le 4. Enfin, le 18 octobre 1996 on rajoute un nouvel indicatif de zone : 01 pour Paris et sa région, 02 à 05 pour les différents secteurs d’une France coupé en 4. Enfin, si vous téléphonez depuis l’étranger l’indicatif de pays est le 33 !

Résumons… Par un simple n° de téléphone, on sait à quelques pâtés de maisons, où vous habitez. Dans mon village les autochtones se communiquent leurs coordonnées téléphoniques avec les simples 4 derniers chiffres, sachant que tout le monde est à la même enseigne pour le reste. N’est-ce pas là un magnifique exemple d’index ? Un tel numéro sert à "aiguiller" la recherche du destinataire… C’est donc cela un index : une information redondante dont le but est d’accélérer les recherches.

Cependant, il y a quelques limites à l’index… Comme un index constitue une information redondante et ordonnée, la recherche dans un index est rapide, si ce que l’on cherche va dans le sens du tri. Un index ne sert donc à rien dans certains cas. Prenons par exemple un numéro de téléphone et constatons que sa partie la plus intéressante n’est pas le début, mais la fin. En effet, vous, français qui me lisez en ce moment, voici trois n° de téléphone identiques : + 33 1 42 92 81 00 00 33 1 42 92 81 00 01 42 92 81 00 Or la partie significative de ces n° est la fin et non le début. Imaginons maintenant que vous cherchez à savoir quel est l’interlocuteur qui vous a laissé un numéro de téléphone tel que 01 42 92 81 00.

En général et compte tenu des différentes écritures possibles (avec ou sans suffixe de pays) vous allez construire votre prédicat de recherche avec un LIKE comme ceci : WHERE NUM_TEL LIKE ‘%1 42 92 81 00’ Malheureusement, même en plaçant un index sur ce type de colonne, vous n’aurez jamais aucune chance de trouver rapidement votre correspondant. En effet, les données de l’index étant triées par rapport aux premiers caractères composant la chaîne, il faudra balayer toutes les données pour en trouver la correspondance. Vous venez de toucher du doigt une notion importante, ce que les anglos saxons nomment "la sargeabilité" (en anglais sargeable [7] : Search ARGument ABLE). Il ne suffit pas de placer un index, encore faut-il que l’expression de filtrage puisse l’utiliser… Dans bien des cas, on peut rendre la requête "sargeable" avec quelques petites transformations, à la limite de la dénormalisation.

[4] Ne m’y cherchez pas, je déteste les Champs Élysés. Ce doit d’ailleurs être une artère très boueuse vu le nombre incroyable de 4×4 qui s’y pavanent !
[5] A mon avis, ce doit être l’inverse, car déplacer un immeuble est plus coûteux qu’une plaque numérotée… Mais il s’agit là d’un propos en avance sur notre prochain article consacré à la maintenance des performances…
[6] Lorsqu’on lui présenta cette terrible invention, Clémenceau dit du téléphone "Quoi ? On vous sonne comme un laquais !"
[7] Devrions nous dire "cherchable ?"

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010