1AN index (ancien nom: index secondaire) fournit des moyens d’accéder aux données dans Cassandra en utilisant des champs de clé non primaires autres que la clé de partition. L’avantage est une recherche rapide et efficace des données correspondant à une condition donnée. En fait, s’il n’y a pas d’index sur une colonne normale, il n’est même pas autorisé à interroger conditionnellement la colonne.
Un index indexe les valeurs de colonne dans une famille de colonnes (table) distincte et masquée de celle qui contient les valeurs à indexer. Les données d’un index sont uniquement locales, ce qui signifie qu’elles ne seront pas répliquées sur d’autres nœuds. Cela signifie également que, pour une requête de données par colonne indexée, les requêtes doivent être transmises à tous les nœuds, en attendant toutes les résonances, puis les résultats sont fusionnés et renvoyés. Ainsi, si vous avez de nombreux nœuds, la réponse à la requête ralentit à mesure que d’autres machines sont ajoutées au cluster.
Attention :
Dans la version actuelle (2.0.7) d’Apache Cassandra, vous ne pouviez interroger que par une colonne indexée avec une condition de comparaison d’égalité. La sélection de plage ou l’ordre par une colonne indexée n’est pas prise en charge. La raison en est que les clés stockées dans la famille de colonnes cachées ne sont pas triées.
Quand Utiliser Un Index ?
2 Les index intégrés de Cassandra sont les meilleurs sur une table ayant de nombreuses lignes contenant la valeur indexée. Plus il y a de valeurs uniques dans une colonne particulière, plus vous aurez de frais généraux pour interroger et maintenir l’index. Par exemple, supposons que vous ayez une table de listes de lecture avec un milliard de chansons et que vous vouliez rechercher des chansons de l’artiste. De nombreuses chansons partageront la même valeur de colonne pour l’artiste. La colonne artiste est un bon candidat pour un index.
Quand Ne Pas Utiliser Un Index ?
2 N’utilisez pas d’index dans ces situations :
- Sur des colonnes à haute cardinalité, car vous interrogez ensuite un énorme volume d’enregistrements pour un petit nombre de résultats
- Dans des tables qui utilisent une colonne de compteur
- Sur une colonne fréquemment mise à jour ou supprimée
- Pour rechercher une ligne dans une grande partition à moins d’être interrogée de manière étroite