Tạo và thả INDEX vào Cassandra

Cassandra Tạo chỉ mục

Lệnh 'Tạo chỉ mục' tạo chỉ mục trên cột do người dùng chỉ định. Nếu dữ liệu đã tồn tại cho cột bạn muốn lập chỉ mục, Cassandra tạo các chỉ mục trên dữ liệu trong quá trình thực thi câu lệnh 'tạo chỉ mục'.

  • Sau khi tạo chỉ mục, Cassandra tự động lập chỉ mục dữ liệu mới khi dữ liệu được chèn vào.
  • Không thể tạo chỉ mục trên khóa chính vì khóa chính đã được lập chỉ mục.
  • Chỉ mục trên các bộ sưu tập không được hỗ trợ trong Cassandra.
  • Không lập chỉ mục trên cột, Cassandra không thể lọc cột đó trừ khi nó là khóa chính.

Đó là lý do tại sao, để lọc các cột trong Cassandra, cần tạo chỉ mục.

cú pháp

Create index IndexName on KeyspaceName.TableName(ColumnName);

Ví dụ

Đây là ảnh chụp nhanh nơi nó được cố gắng lọc cột “phòng ban” mà không tạo chỉ mục. Đáp lại, lỗi đã được trả lại.

Cassandra Tạo chỉ mục

Đây là ảnh chụp nhanh nơi chỉ mục được tạo trên cột dept.

Cassandra Tạo chỉ mục

Create index DeptIndex on University.Student(dept);

Đây là ảnh chụp nhanh nơi cột 'phòng ban' sẽ được lọc thành công.

Cassandra Tạo chỉ mục

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

Cassandra Thả chỉ mục

Lệnh 'Thả chỉ mục' xóa chỉ mục đã chỉ định. Nếu tên chỉ mục không được cung cấp trong quá trình tạo chỉ mục thì tên chỉ mục là TableName_ColumnName_idx.

  • Nếu chỉ mục không tồn tại, nó sẽ trả về lỗi trừ khi IF EXISTS được sử dụng sẽ trả về no-op.
  • Trong quá trình tạo chỉ mục, bạn phải chỉ định tên không gian khóa với tên chỉ mục, nếu không chỉ mục sẽ bị xóa khỏi không gian khóa hiện tại.

cú pháp

Drop index IF EXISTS KeyspaceName.IndexName

Ví dụ

Đây là ảnh chụp nhanh của lệnh đã thực hiện 'Thả chỉ mục' để xóa chỉ mục DeptIndex.

Cassandra Thả chỉ mục

drop index IF EXISTS University.DeptIndex;

Sau khi thực hiện thành công lệnh, DeptIndex sẽ bị loại bỏ khỏi keyspace. Bây giờ dữ liệu không thể được lọc theo cột.