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.

Cassandra Stvori indeks

Ovdje je snimka gdje je indeks kreiran u stupcu dept.

Cassandra Stvori indeks

Create index DeptIndex on University.Student(dept);

Ovdje je snimka gdje će biti uspješno filtriran 'dept' stupac.

Cassandra Stvori indeks

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.

Cassandra Ispustite indeks

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.