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.
Đây là ảnh chụp nhanh nơi chỉ mục được tạo trên cột dept.
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.
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.
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.