En base de données, un index est un outil de performance et un raccourci qui permet d’accéder plus rapidement aux données.
Les données collectées et stockées en base de données doivent pouvoir être interrogeables. Mais toutes les données n’ont pas le même intérêt. Certaines se retrouvent facilement et les calculs nécessaires à leur remontée sont faciles. D’autres sont plus complexes et nécessitent une puissance de calcul plus importante. Enfin, les données clés (les clés primaires, les clés étrangères ou les champs sur lesquels beaucoup d’interrogations sont réalisées) doivent être très rapidement accessibles. C’est pour ces raisons que les concepteurs de bases de données « trichent » et mettent en place des raccourcis vers ces données.
Les index ne sont pas accessibles directement et ne se voient pas dans la structure de la base de données (ils ne sont pas modélisés dans des méthodes telle que Merise et il n’est pas possible d’y accéder via SQL en lecture).
L’index est donc une construction informatique qui doublonne les données présentent en base et qui accélère les recherches.
- C’est surtout le volume d’information qui rend l’index intéressant. Sur de petites bases de données, les gains de performances sont minimes. À l’inverse, lorsque les bases de données sont importantes, les index montrent toute leur efficacité.
- L’efficacité d’un index décroit avec sa longueur. Plus l’index est composé d’un nombre de colonnes important, plus son intérêt baisse (concrètement, l’index ressemble trop aux tables qu’il est censé représenté et le temps nécessaire à son parcours revient peu ou prou à celui de parcourir la table en direct).
Certains SGBDR permettent la création d’index à partir de données calculées.