L'indexation améliore les performances de la base de données en minimisant le nombre de visites de disque requises pour répondre à une requête. Il s'agit d'une technique de structure de données utilisée pour localiser et accéder rapidement aux données dans des bases de données. Plusieurs champs de base de données sont utilisés pour générer des index. La clé principale ou clé candidate de la table est dupliquée dans la première colonne, qui est la clé de recherche. Pour accélérer la récupération des données, les valeurs sont également conservées dans un ordre trié. Il convient de souligner qu’il n’est pas nécessaire de trier les données. La deuxième colonne est la référence de données ou pointeur qui contient un ensemble de pointeurs contenant l'adresse du bloc de disque où cette valeur de clé particulière peut être trouvée.
Structure de l'index dans la base de données
Attributs de l'indexation
- Types d'accès : Il s'agit du type d'accès tel que la recherche basée sur des valeurs, l'accès à une plage, etc.
- Temps d'accès: Il fait référence au temps nécessaire pour trouver un élément de données ou un ensemble d'éléments particulier.
- Temps d'insertion : Il fait référence au temps nécessaire pour trouver l'espace approprié et insérer de nouvelles données.
- Heure de suppression : Temps nécessaire pour rechercher un élément, le supprimer ainsi que mettre à jour la structure de l'index.
- Espace aérien : Il fait référence à l'espace supplémentaire requis par l'index.
Structure de l'index dans la base de données
listes Java
En général, il existe deux types de mécanismes d'organisation des fichiers qui sont suivis par les méthodes d'indexation pour stocker les données :
Organisation de fichiers séquentiels ou fichier d'index ordonné
En cela, les indices sont basés sur un ordre trié des valeurs. Ce sont généralement des mécanismes de stockage rapides et plus traditionnels. Ces organisations de fichiers ordonnés ou séquentiels peuvent stocker les données dans un format dense ou clairsemé.
- Indice dense
- Pour chaque valeur de clé de recherche dans le fichier de données, il existe un enregistrement d'index.
- Cet enregistrement contient la clé de recherche ainsi qu'une référence au premier enregistrement de données avec cette valeur de clé de recherche.
Indice dense
- Index clairsemé
- L'enregistrement d'index apparaît uniquement pour quelques éléments du fichier de données. Chaque élément pointe vers un bloc comme indiqué.
- Pour localiser un enregistrement, nous trouvons l'enregistrement d'index avec la plus grande valeur de clé de recherche inférieure ou égale à la valeur de clé de recherche que nous recherchons.
- Nous commençons par cet enregistrement pointé par l'enregistrement d'index et suivons les pointeurs dans le fichier (c'est-à-dire séquentiellement) jusqu'à ce que nous trouvions l'enregistrement souhaité.
- Nombre d'accès requis=log₂(n)+1, (ici n=nombre de blocs acquis par fichier d'index)
Index clairsemé
Organisation des fichiers de hachage
Les indices sont basés sur des valeurs réparties uniformément sur une gamme de catégories. Les compartiments auxquels une valeur est attribuée sont déterminés par une fonction appelée fonction de hachage. Il existe principalement trois méthodes d'indexation :
10 sur 50
- Indexation clusterisée : Lorsque plus de deux enregistrements sont stockés dans le même fichier, ce type de stockage est appelé indexation de cluster. En utilisant l'indexation de cluster, nous pouvons réduire le coût de la recherche, car plusieurs enregistrements liés à la même chose sont stockés au même endroit et cela permet également la jointure fréquente de plus de deux tables (enregistrements).
L'index de clustering est défini sur un fichier de données ordonné. Le fichier de données est ordonné sur un champ non clé. Dans certains cas, l'index est créé sur des colonnes de clé non primaire qui peuvent ne pas être uniques pour chaque enregistrement. Dans de tels cas, afin d'identifier les enregistrements plus rapidement, nous regrouperons deux colonnes ou plus pour obtenir les valeurs uniques et créerons un index à partir d'elles. Cette méthode est connue sous le nom d’index de clustering. Essentiellement, les enregistrements ayant des propriétés similaires sont regroupés et des index pour ces regroupements sont formés.
Les étudiants qui étudient chaque semestre, par exemple, sont regroupés. Les étudiants du premier semestre, les étudiants du deuxième semestre, les étudiants du troisième semestre, etc. sont classés.
Indexation clusterisée
- Indexation primaire : Il s'agit d'un type d'indexation clusterisée dans lequel les données sont triées en fonction de la clé de recherche et la clé primaire de la table de base de données est utilisée pour créer l'index. C'est un format d'indexation par défaut où il induit organisation de fichiers séquentiels . Comme les clés primaires sont uniques et stockées de manière triée, les performances de l’opération de recherche sont assez efficaces.
- Indexation non clusterisée ou secondaire : Un index non clusterisé nous indique simplement où se trouvent les données, c'est-à-dire qu'il nous donne une liste de pointeurs virtuels ou de références à l'emplacement où les données sont réellement stockées. Les données ne sont pas physiquement stockées dans l’ordre de l’index. Au lieu de cela, les données sont présentes dans les nœuds feuilles. Par ex. la page de contenu d'un livre. Chaque entrée nous donne le numéro de page ou l'emplacement des informations stockées. Les données réelles ici (informations sur chaque page du livre) ne sont pas organisées mais nous avons une référence ordonnée (page de contenu) indiquant où se trouvent réellement les points de données. Nous ne pouvons avoir qu'un ordre dense dans l'index non clusterisé, car un ordre clairsemé n'est pas possible car les données ne sont pas physiquement organisées en conséquence.
Cela nécessite plus de temps que l'index clusterisé, car une certaine quantité de travail supplémentaire est effectuée afin d'extraire les données en suivant davantage le pointeur. Dans le cas d'un index clusterisé, les données sont directement présentes devant l'index.

Indexation non clusterisée
- Indexation multiniveau : Avec la croissance de la taille de la base de données, les indices augmentent également. Comme l'index est stocké dans la mémoire principale, un index à un seul niveau peut devenir trop grand pour être stocké avec plusieurs accès au disque. L'indexation à plusieurs niveaux sépare le bloc principal en plusieurs blocs plus petits afin que celui-ci puisse être stocké dans un seul bloc. Les blocs externes sont divisés en blocs internes qui, à leur tour, pointent vers les blocs de données. Cela peut être facilement stocké dans la mémoire principale avec moins de frais généraux.
Indexation multiniveau
Avantages de l'indexation
- Performances de requête améliorées : L'indexation permet une récupération plus rapide des données de la base de données. La base de données peut découvrir rapidement les lignes qui correspondent à une valeur spécifique ou à un ensemble de valeurs en générant un index sur une colonne, minimisant ainsi le temps nécessaire à l'exécution d'une requête.
- Accès efficace aux données : L'indexation peut améliorer l'efficacité de l'accès aux données en réduisant la quantité d'E/S disque requise pour récupérer les données. La base de données peut conserver en mémoire les pages de données des colonnes fréquemment visitées en générant un index sur ces colonnes, réduisant ainsi la nécessité de lire à partir du disque.
- Tri des données optimisé : L'indexation peut également améliorer les performances des opérations de tri. En créant un index sur les colonnes utilisées pour le tri, la base de données peut éviter de trier la table entière et trier uniquement les lignes pertinentes.
- Performances de données cohérentes : L'indexation peut contribuer à garantir que la base de données fonctionne de manière cohérente, même si la quantité de données dans la base de données augmente. Sans indexation, l'exécution des requêtes peut prendre plus de temps à mesure que le nombre de lignes de la table augmente, tandis que l'indexation maintient une vitesse à peu près constante.
- En garantissant que seules les valeurs uniques sont insérées dans les colonnes indexées comme étant uniques, l'indexation peut également être utilisée pour garantir l'intégrité des données. Cela évite de stocker des données en double dans la base de données, ce qui pourrait entraîner des problèmes lors de l'exécution de requêtes ou de rapports.
Dans l'ensemble, l'indexation dans les bases de données offre des avantages significatifs pour l'amélioration des performances des requêtes, un accès efficace aux données, un tri optimisé des données, des performances de données cohérentes et une intégrité des données renforcée.
Inconvénients de l'indexation
- L'indexation nécessite davantage d'espace de stockage pour contenir la structure des données d'indexation, ce qui peut augmenter la taille totale de la base de données.
- Augmentation des frais de maintenance de la base de données : Les index doivent être conservés à mesure que les données sont ajoutées, détruites ou modifiées dans la table, ce qui peut augmenter la surcharge de maintenance de la base de données.
- L'indexation peut réduire les performances d'insertion et de mise à jour puisque la structure des données d'indexation doit être mise à jour à chaque fois que les données sont modifiées.
- Choisir un index peut être difficile : Il peut être difficile de choisir les bons index pour une requête ou une application spécifique et peut nécessiter un examen détaillé des données et des modèles d'accès.
Caractéristiques de l'indexation
- Le développement de structures de données, telles que Arbres B ou Les colonnes les plus importantes pour l'indexation des colonnes sont sélectionnées en fonction de la fréquence d'utilisation et des types de requêtes auxquelles elles sont soumises. Le cardinalité , la sélectivité et l'unicité des colonnes d'indexation peuvent être prises en compte.
- Il existe plusieurs types d'index différents utilisés par les bases de données, notamment les index primaires, secondaires, clusterisés et non clusterisés. En fonction des besoins particuliers du système de base de données, chaque forme d'index présente des avantages et des inconvénients.
- Pour que le système de base de données fonctionne au mieux, une maintenance périodique des index est nécessaire. En fonction de l'évolution des données et des modèles d'utilisation, le travail de maintenance implique la création, la mise à jour et la suppression d'index.
- L'optimisation des requêtes de base de données passe par l'indexation, ce qui est essentiel. L'optimiseur de requêtes utilise les index pour choisir la meilleure stratégie d'exécution pour une requête particulière en fonction du coût d'accès aux données et de la sélectivité des colonnes d'indexation.
- Les bases de données utilisent diverses stratégies d'indexation, notamment les index couvrants, les analyses d'index uniquement et les index partiels. Ces techniques maximisent l'utilisation des index pour des types particuliers de requêtes et d'accès aux données.
- Lorsque des blocs de données non contigus sont stockés dans un index, cela peut entraîner une fragmentation de l'index, ce qui rend l'index moins efficace. La maintenance régulière des index, telle que la défragmentation et la réorganisation, peut diminuer fragmentation .
Conclusion
L'indexation est une technique très utile qui permet d'optimiser le temps de recherche dans base de données requêtes. La table d'indexation de la base de données est constituée d'une clé de recherche et aiguille . Il existe quatre types d'indexation : le clustering principal, le clustering secondaire et l'indexation à valeurs multiples. L'indexation primaire est divisée en deux types, dense et clairsemée. L'indexation dense est utilisée lorsque la table d'index contient des enregistrements pour chaque clé de recherche. L'indexation éparse est utilisée lorsque la table d'index n'utilise pas de clé de recherche pour chaque enregistrement. Utilisations de l'indexation multiniveau Arbre B+ . L'objectif principal de l'indexation est d'offrir de meilleures performances pour la récupération des données.
FAQ sur l'indexation
Q.1 : Qu'est-ce que l'indexation dans les bases de données ?
Répondre:
comparaison de chaînes
L'indexation est essentiellement une technique qui permet de réduire le temps de recherche d'une requête de base de données ou d'accéder plus rapidement à la base de données.
Q.2 : Quels sont les exemples de bases de données d'indexation ?
Répondre:
Quelques exemples courants de bases de données d'indexation sont le Web of Science, DOAJ (Directory of Open Access Journals)
Pour plus de détails, vous pouvez vous référer à Introduction à l'arbre B+ et Types de clés dans la base de données article.