สร้างและวาง INDEX เข้าไป Cassandra

Cassandra สร้างดัชนี

คำสั่ง 'สร้างดัชนี' สร้างดัชนีในคอลัมน์ที่ระบุโดยผู้ใช้ หากมีข้อมูลอยู่แล้วสำหรับคอลัมน์ที่คุณต้องการจัดทำดัชนี Cassandra สร้างดัชนีบนข้อมูลระหว่างการดำเนินการคำสั่ง 'สร้างดัชนี'

  • หลังจากสร้างดัชนีแล้ว Cassandra จัดทำดัชนีข้อมูลใหม่โดยอัตโนมัติเมื่อมีการแทรกข้อมูล
  • ไม่สามารถสร้างดัชนีบนคีย์หลักได้ เนื่องจากคีย์หลักได้รับการจัดทำดัชนีแล้ว
  • ไม่รองรับดัชนีในคอลเลกชัน Cassandra.
  • โดยไม่ต้องจัดทำดัชนีบนคอลัมน์ Cassandra ไม่สามารถกรองคอลัมน์นั้นได้เว้นแต่จะเป็นคีย์หลัก

นั่นเป็นเหตุผลในการกรองคอลัมน์ Cassandraจำเป็นต้องสร้างดัชนี

วากยสัมพันธ์

Create index IndexName on KeyspaceName.TableName(ColumnName);

ตัวอย่าง

นี่คือภาพรวมที่พยายามกรองคอลัมน์ "แผนก" โดยไม่สร้างดัชนี เพื่อเป็นการตอบสนอง ข้อผิดพลาดจึงถูกส่งคืน

Cassandra สร้างดัชนี

นี่คือภาพรวมที่มีการสร้างดัชนีในคอลัมน์ฝ่าย

Cassandra สร้างดัชนี

Create index DeptIndex on University.Student(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 จะถูกละทิ้งจากคีย์สเปซ ขณะนี้ข้อมูลไม่สามารถกรองโดยแผนกคอลัมน์ได้