Opret og slip INDEX ind Cassandra
Cassandra Opret indeks
Kommandoen 'Opret indeks' opretter et indeks på kolonnen angivet af brugeren. Hvis dataene allerede findes for den kolonne, du vil indeksere, Cassandra opretter indekser på dataene under udførelsen af 'create index'-sætningen.
- Efter oprettelse af et indeks, Cassandra indekserer automatisk nye data, når data indsættes.
- Indekset kan ikke oprettes på primærnøgle, da en primærnøgle allerede er indekseret.
- Indekser på samlinger understøttes ikke i Cassandra.
- Uden indeksering på kolonnen, Cassandra kan ikke filtrere den kolonne, medmindre det er en primær nøgle.
Det er derfor, for at filtrere kolonner ind Cassandra, skal der oprettes indekser.
Syntaks
Create index IndexName on KeyspaceName.TableName(ColumnName);
Eksempel
Her er det øjebliksbillede, hvor det blev forsøgt at filtrere "dept"-kolonnen uden at oprette indekset. Som svar blev fejlen returneret.
Her er det øjebliksbillede, hvor indeks oprettes på afd. kolonne.
Create index DeptIndex on University.Student(dept);
Her er et øjebliksbillede, hvor det med succes vil blive filtreret 'dept' kolonne.
select * from University.Student where dept='CS';
Cassandra Drop Index
Kommandoen 'Drop index' dropper det angivne indeks. Hvis indeksnavnet ikke blev givet under oprettelsen af indekset, er indeksnavnet TableName_ColumnName_idx.
- Hvis indekset ikke eksisterer, vil det returnere en fejl, medmindre IF EXISTS bruges, vil det returnere no-op.
- Under oprettelse af indeks skal du angive et nøgleområdenavn med indeksnavnet, ellers vil indekset blive slettet fra det aktuelle nøglerum.
Syntaks
Drop index IF EXISTS KeyspaceName.IndexName
Eksempel
Her er et øjebliksbillede af den udførte kommando 'Drop index', der dropper indekset DeptIndex.
drop index IF EXISTS University.DeptIndex;
Efter vellykket udførelse af kommandoen vil DeptIndex blive slettet fra tasterummet. Nu kan data ikke filtreres af kolonneafdelingen.