1An index (vroegere naam: secundaire index) biedt middelen om toegang te krijgen tot gegevens in Cassandra met behulp van niet-primaire sleutelvelden anders dan de partitiesleutel. Het voordeel is snel en efficiënt zoeken van gegevens die overeenkomen met een bepaalde voorwaarde. Eigenlijk, als er geen index op een normale kolom, is het zelfs niet toegestaan om voorwaardelijk query door de kolom.
een index indexeert kolomwaarden in een afzonderlijke, verborgen kolomfamilie (tabel) van degene die de waarden bevat die worden geïndexeerd. De gegevens van een index zijn alleen lokaal, wat betekent dat het niet zal worden gerepliceerd naar andere knooppunten. Dit betekent ook, voor data query door geïndexeerde kolom, de aanvragen moeten worden doorgestuurd naar alle knooppunten, wachten op alle resones, en dan de resultaten worden samengevoegd en geretourneerd. Als u dus veel knooppunten hebt, vertraagt het antwoord van de query naarmate er meer machines aan het cluster worden toegevoegd.
Let op:
met de huidige Versie (2.0.7) van Apache Cassandra kunt u alleen query ‘ s uitvoeren met een geïndexeerde kolom met gelijkheidsvergelijkingsvoorwaarde. Bereik selecteren of volgorde-door een geïndexeerde kolom wordt niet ondersteund. De reden is dat de sleutels die zijn opgeslagen in de verborgen kolomfamilie ongesorteerd zijn.
wanneer een Index gebruiken?
2cassandra ‘ s ingebouwde indexen zijn het beste in een tabel met veel rijen die de geïndexeerde waarde bevatten. Hoe meer unieke waarden die bestaan in een bepaalde kolom, hoe meer overhead je hebt voor het opvragen en onderhouden van de index. Stel dat je bijvoorbeeld een afspeellijsttafel had met een miljard nummers en dat je nummers van de artiest wilde opzoeken. Veel nummers zullen dezelfde kolomwaarde voor artiest delen. De artist column is een goede kandidaat voor een index.
Wanneer mag een Index niet worden gebruikt?
2 Gebruik geen index in deze situaties:
- op kolommen met een hoge cardinaliteit omdat u vervolgens een groot aantal records opvraagt voor een klein aantal resultaten
- in tabellen die een tellerkolom
- gebruiken op een vaak bijgewerkte of verwijderde kolom
- om een rij in een grote partitie te zoeken, tenzij nauw opgevraagd