Створіть і вставте INDEX Cassandra

Cassandra Створити індекс

Команда «Створити індекс» створює індекс на вказаний користувачем стовпець. Якщо дані для стовпця, який потрібно проіндексувати, уже існують, Cassandra створює індекси даних під час виконання оператора «create index».

  • Після створення індексу Cassandra автоматично індексує нові дані, коли дані вставляються.
  • Індекс не можна створити на первинному ключі, оскільки первинний ключ уже проіндексовано.
  • Індекси колекцій не підтримуються в Cassandra.
  • Без індексації на колонці, Cassandra не можна фільтрувати цей стовпець, якщо це не первинний ключ.

Ось чому для фільтрації стовпців у Cassandra, необхідно створити індекси.

синтаксис

Create index IndexName on KeyspaceName.TableName(ColumnName);

Приклад

Ось знімок, на якому намагалися відфільтрувати стовпець «dept» без створення індексу. У відповідь була повернена помилка.

Cassandra Створити індекс

Ось знімок, на якому створено індекс у стовпці dept.

Cassandra Створити індекс

Create index DeptIndex on University.Student(dept);

Ось знімок, на якому буде успішно відфільтровано стовпець «dept».

Cassandra Створити індекс

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

Cassandra Індекс падіння

Команда «Скинути індекс» видаляє вказаний індекс. Якщо ім’я індексу не вказано під час створення індексу, тоді ім’я індексу буде TableName_ColumnName_idx.

  • Якщо індекс не існує, він поверне помилку, якщо не використано IF EXISTS, який поверне no-op.
  • Під час створення індексу ви повинні вказати назву простору ключів разом із назвою індексу, інакше індекс буде видалено з поточного простору ключів.

синтаксис

Drop index IF EXISTS KeyspaceName.IndexName

Приклад

Ось знімок виконаної команди «Drop index», яка видаляє індекс DeptIndex.

Cassandra Індекс падіння

drop index IF EXISTS University.DeptIndex;

Після успішного виконання команди DeptIndex буде видалено з простору ключів. Тепер дані не можна фільтрувати за стовпцем dept.