« Améliorez vos performances grâce aux index de bases de données »

Divers facteurs, diverses responsabilités
Pour garder des performances optimales, les hébergeurs doivent investir dans une bonne infrastructure technique. Combell accorde toujours une grande importance à la qualité et investit depuis déjà des années dans du matériel de grande qualité et l’expertise nécessaire pour pouvoir s’en servir comme il se doit. Mais cela ne suffit pas pour garantir une haute performance : le développeur porte lui aussi une importante part de responsabilité dans ce cadre.


Ce n’est pas uniquement une question d’utiliser des codes efficaces, mais aussi de minimaliser le délai de traitement de sources de données externes. L’implémentation la plus courante est la base de données. Via SQL, vous pouvez filtrer des données contenues dans votre base de données que vous pouvez utiliser dans votre application. Quelle que soit la rapidité de fonctionnement de votre application, vous dépendrez toujours de votre base de données.

Les index de bases de données et la métaphore du livre
Dans le cas d’ensembles de données peu volumineux, cette dépendance en matière de performances est minime. Ce n’est que lorsque votre base de données contient beaucoup de données que vous remarquerez des ralentissements structurels. Une solution importante est l’utilisation d’index. Ce principe peut parfaitement être comparé à la liste des mots-clés dans un livre.

Si vous receviez la demande de compter le nombre de fois où le mot « maison » apparaît dans un livre de 10 pages, vous devriez entamer vos recherches à partir de la première page. Cela irait encore, mais dans le cas d’un livre de 1000 pages, la recherche deviendrait très laborieuse. Mais si vous aviez une liste de mots-clés dans votre livre, vous pourriez très rapidement compter le nombre de fois où le terme apparaît et surtout savoir où il apparaît.

L’indexation en tant qu’élément de la conception de la base de données
L’indexation de votre base de données n’est pas une opération que vous effectuez par hasard ; il s’agit d’un élément essentiel dans la conception d’une base de données. Lors de la création des tables de votre base de données, il est important que vous sachiez quels champs doivent être indexés. Une condition fonctionnelle entre également en ligne de compte : vous devez savoir à l’avance sur quels champs les recherches sont principalement effectuées.

Le réflexe consistant à indexer chaque champ doit être abandonné, car l’indexation est un « compromis » : d’une part, vous augmentez les performances de la recherche, mais d’autre part, maintenir à jour les index requiert du temps et des ressources. Il faut constamment surveiller l’équilibre entre la lecture et l’écriture. C’est exactement pour cela qu’il est intéressant de déterminer – grâce à votre analyse fonctionnelle – quels sont les champs les plus importants et comment les filtres y sont appliqués. D’un point de vue non fonctionnel, les connaissances nécessaires du rapport lecture/écriture sont un atout supplémentaire.

Implémentation
L’implémentation de l’index peut être réalisée de façon relativement simple via une instruction SQL. Vous pouvez utiliser la syntaxe « create index », mais vous avez aussi la possibilité de définir des index dans une instruction « alter table ». Pour les champs texte, il est important que vous indiquiez la longueur des index.

Plus l’index est compact, au mieux ce sera, mais un index trop compact résultera en un rendement faible. Si vous souhaitez p. ex. indexer le terme « Nom de domaine » et que vous optez pour un index de 3 caractères, seul « Nom » peut être indexé. Des termes tels que « Nommer », « Nombre » ou tout simplement « Nom » seraient également trouvés. Un index trop long prend trop d’espace et requiert du temps pour être mis à jour.

Bref, un bon équilibre entre les champs à indexer et la longueur de l’index vous permettra d’atteindre un rendement maximal.