Utwórz i upuść INDEX Cassandra

Cassandra Utwórz indeks

Polecenie „Utwórz indeks” tworzy indeks na kolumnie określonej przez użytkownika. Jeśli dane dla kolumny, którą chcesz zaindeksować, już istnieją, Cassandra tworzy indeksy na danych podczas wykonywania instrukcji „utwórz indeks”.

  • Po utworzeniu indeksu Cassandra automatycznie indeksuje nowe dane po ich wstawieniu.
  • Nie można utworzyć indeksu na kluczu podstawowym, ponieważ klucz podstawowy jest już zaindeksowany.
  • Indeksy kolekcji nie są obsługiwane w Cassandra.
  • Bez indeksowania w kolumnie, Cassandra nie można filtrować tej kolumny, chyba że jest to klucz podstawowy.

Dlatego do filtrowania kolumn w Cassandra, należy utworzyć indeksy.

Składnia

Create index IndexName on KeyspaceName.TableName(ColumnName);

Przykład

Oto migawka, w której próbowano filtrować kolumnę „dept” bez tworzenia indeksu. W odpowiedzi błąd został zwrócony.

Cassandra Utwórz indeks

Oto migawka, w której tworzony jest indeks w kolumnie działu.

Cassandra Utwórz indeks

Create index DeptIndex on University.Student(dept);

Oto migawka, w której kolumna „dept” zostanie pomyślnie przefiltrowana.

Cassandra Utwórz indeks

select * from University.Student where dept='CS';

Cassandra Upuść indeks

Polecenie „Usuń indeks” usuwa określony indeks. Jeśli nazwa indeksu nie została podana podczas tworzenia indeksu, wówczas nazwą indeksu jest NazwaTabeli_NazwaKolumny_idx.

  • Jeśli indeks nie istnieje, zwróci błąd, chyba że zostanie użyte JEŚLI ISTNIEJE, co zwróci brak operacji.
  • Podczas tworzenia indeksu należy określić nazwę przestrzeni kluczy wraz z nazwą indeksu, w przeciwnym razie indeks zostanie usunięty z bieżącej przestrzeni kluczy.

Składnia

Drop index IF EXISTS KeyspaceName.IndexName

Przykład

Oto migawka wykonanego polecenia „Upuść indeks”, które usuwa indeks DeptIndex.

Cassandra Upuść indeks

drop index IF EXISTS University.DeptIndex;

Po pomyślnym wykonaniu polecenia DeptIndex zostanie usunięty z przestrzeni kluczy. Teraz nie można filtrować danych według działu kolumny.