INDEX maken en neerzetten Cassandra
Cassandra Index maken
Commando 'Index aanmaken' maakt een index aan op de door de gebruiker opgegeven kolom. Als de gegevens al bestaan voor de kolom die u wilt indexeren, Cassandra creëert indexen op de gegevens tijdens de uitvoering van de 'create index'-instructie.
- Nadat u een index hebt gemaakt, Cassandra indexeert nieuwe gegevens automatisch wanneer gegevens worden ingevoegd.
- De index kan niet op de primaire sleutel worden gemaakt, omdat er al een primaire sleutel is geïndexeerd.
- Indexen op collecties worden niet ondersteund in Cassandra.
- Zonder indexering op de kolom, Cassandra kan die kolom niet filteren, tenzij het een primaire sleutel is.
Dat is waarom, voor het filteren van kolommen Cassandra, indexen moeten worden gemaakt.
Syntaxis
Create index IndexName on KeyspaceName.TableName(ColumnName);
Voorbeeld
Hier is de momentopname waarin werd geprobeerd de kolom “dept” te filteren zonder de index te maken. Als reactie hierop werd de fout geretourneerd.
Hier is de momentopname waarin de index wordt gemaakt in de afd-kolom.
Create index DeptIndex on University.Student(dept);
Hier is de momentopname waarin de kolom 'dept' met succes wordt gefilterd.
select * from University.Student where dept='CS';
Cassandra Dalingsindex
Commando 'Index verwijderen' verwijdert de opgegeven index. Als de indexnaam niet is opgegeven tijdens het maken van de index, is de indexnaam Tabelnaam_Kolomnaam_idx.
- Als de index niet bestaat, retourneert deze een fout, tenzij IF EXISTS wordt gebruikt, waardoor no-op wordt geretourneerd.
- Tijdens het aanmaken van de index moet u de keyspacenaam opgeven met de indexnaam. Anders wordt de index uit de huidige keyspace verwijderd.
Syntaxis
Drop index IF EXISTS KeyspaceName.IndexName
Voorbeeld
Hier is de momentopname van het uitgevoerde commando 'Drop index' waarmee de index DeptIndex wordt verwijderd.
drop index IF EXISTS University.DeptIndex;
Na succesvolle uitvoering van de opdracht wordt DeptIndex uit de sleutelruimte verwijderd. Gegevens kunnen nu niet worden gefilterd door de kolomafdeling.