par Guillaume Lelarge.

Regrouper les données


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éra­tions 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.

Stockage en colonne

Les bases de données orientées colonnes, ou entrepôts colonne, orga­nisent les tables en colonne. Ce modèle est intéressant lors de l'accès à de nombreuses lignes mais à peu de colonnes à la fois. Il s'avère que ce modèle est très commun parmi les entrepôts de données (OLAP).

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.

À propos de l'auteur

Photo de Markus Winand

Markus Winand teaches efficient SQL—inhouse and online. He minimizes the development time using modern SQL and optimizes the runtime with smart indexing—for that he also published the book SQL Performance Explained.

Livre de Markus

Couverture du livre « SQL : Au cœur des performances »

L'essence de SQL tuning dans 200 pages.

Acheter de Markus
(Livre de poche et PDF)

Achetez chez Amazon
(Seulement en poche)

“Use The Index, Luke!” by Markus Winand and translated by Guillaume Lelarge is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Mentions légales | Contact | NO WARRANTY | Marque déposée | Privacy | CC-BY-NC-ND 3.0 license