Le terme cluster est utilisé dans différents cas. Par exemple, un amas stellaire (amas stellaire en français) est un groupe d'étoiles. Un cluster d'ordinateurs est par contre un groupe d'ordinateurs qui fonctionnent de concert, soit pour résoudre un problème complexe (cluster de haute performance) soit pour augmenter sa disponibilité (cluster de failover). Plus généralement, les clusters sont des groupes d'objets.
Au niveau informatique, il existe un autre type de cluster, souvent mal compris : le « data cluster », traduisible en regroupement de données. Regrouper les données signifie stocker ensemble les données accédées consécutivement pour que l'accès à ces données nécessite moins d'opérations d'entrées/sorties. Les regroupements de données sont très importants au niveau de l'optimisation des bases de données. D'un autre côté, les groupes d'ordinateurs sont aussi très communs dans le contexte de la base de données. Cela rend le terme cluster d'autant plus ambigu. Dire « Utilisons un cluster pour améliorer les performances de la base de données » en est un bon exemple : cela peut faire référence à un groupe d'ordinateurs comme à un regroupement de données. Dans ce chapitre, cluster fait référence à un regroupement de données.
Le plus simple regroupement de données dans une base de données SQL est la ligne. Les bases de données enregistrent toutes les colonnes d'une ligne dans le même bloc d'une base si possible. Des exceptions surviennent si une ligne ne tient pas sur un seul bloc, par exemple lorsque des données de taille variable sont à prendre en compte.
Les utilisateurs peuvent regrouper les données grâce aux index. Cela a déjà été expliqué dans le Chapitre 1, « Anatomie d'un index SQL » : les nœuds feuilles de l'index stockent les colonnes indexées de façon triée pour que les valeurs similaires soient stockées les unes à côté des autres. Cela signifie que les index sont des regroupements de données de valeurs similaires. Cette possibilité de regrouper les données est si essentielle que je l'appelle la deuxième puissance de l'indexation.
Remarque
Le parcours d'un B-tree est la première puissance de l'indexation.
Le regroupement de données est la deuxième puissance de l'indexation.
Les sections suivantes expliquent comment utiliser les index pour regrouper les données et améliorer les performances des requêtes.