Stvorite i ubacite INDEX Cassandra
Cassandra Stvori indeks
Naredba 'Create index' stvara indeks na stupcu koji odredi korisnik. Ako podaci već postoje za stupac koji želite indeksirati, Cassandra stvara indekse podataka tijekom izvođenja naredbe 'create index'.
- Nakon kreiranja indeksa, Cassandra automatski indeksira nove podatke kada se podaci umetnu.
- Indeks se ne može stvoriti na primarnom ključu jer je primarni ključ već indeksiran.
- Indeksi na zbirkama nisu podržani u Cassandra.
- Bez indeksiranja na stupcu, Cassandra ne može filtrirati taj stupac osim ako nije primarni ključ.
Zbog toga, za filtriranje stupaca u Cassandra, potrebno je izraditi indekse.
Sintaksa
Create index IndexName on KeyspaceName.TableName(ColumnName);
Primjer
Ovdje je snimka na kojoj se pokušalo filtrirati stupac "dept" bez stvaranja indeksa. Kao odgovor, vraćena je pogreška.
Ovdje je snimka gdje je indeks kreiran u stupcu dept.
Create index DeptIndex on University.Student(dept);
Ovdje je snimka gdje će biti uspješno filtriran 'dept' stupac.
select * from University.Student where dept='CS';
Cassandra Ispustite indeks
Naredba 'Drop index' ispušta navedeni indeks. Ako ime indeksa nije dano tijekom stvaranja indeksa, tada je ime indeksa TableName_ColumnName_idx.
- Ako indeks ne postoji, vratit će pogrešku osim ako se ne koristi IF EXISTS koji će vratiti no-op.
- Tijekom stvaranja indeksa, morate navesti naziv prostora ključeva s nazivom indeksa inače će indeks biti ispušten iz trenutnog prostora ključeva.
Sintaksa
Drop index IF EXISTS KeyspaceName.IndexName
Primjer
Ovdje je snimka izvršene naredbe 'Drop index' koja ispušta indeks DeptIndex.
drop index IF EXISTS University.DeptIndex;
Nakon uspješnog izvođenja naredbe, DeptIndex će biti ispušten iz prostora ključeva. Sada se podaci ne mogu filtrirati prema odjelu stupca.