Δημιουργία και απόθεση INDEX μέσα Cassandra

Cassandra Δημιουργία ευρετηρίου

Η εντολή «Δημιουργία ευρετηρίου» δημιουργεί ένα ευρετήριο στη στήλη που καθορίζεται από τον χρήστη. Εάν τα δεδομένα υπάρχουν ήδη για τη στήλη που θέλετε να δημιουργήσετε ευρετήριο, Cassandra δημιουργεί ευρετήρια στα δεδομένα κατά την εκτέλεση της δήλωσης «δημιουργία ευρετηρίου».

  • Αφού δημιουργήσετε ένα ευρετήριο, Cassandra ευρετηριάζει αυτόματα νέα δεδομένα όταν εισάγονται δεδομένα.
  • Το ευρετήριο δεν μπορεί να δημιουργηθεί σε πρωτεύον κλειδί, καθώς ένα πρωτεύον κλειδί έχει ήδη ευρετηριαστεί.
  • Τα ευρετήρια σε συλλογές δεν υποστηρίζονται σε Cassandra.
  • Χωρίς ευρετηρίαση στη στήλη, Cassandra δεν μπορεί να φιλτράρει αυτήν τη στήλη εκτός και αν είναι πρωτεύον κλειδί.

Γι' αυτό, για το φιλτράρισμα στηλών μέσα Cassandra, πρέπει να δημιουργηθούν ευρετήρια.

Σύνταξη

Create index IndexName on KeyspaceName.TableName(ColumnName);

Παράδειγμα

Εδώ είναι το στιγμιότυπο όπου επιχειρήθηκε να φιλτράρει τη στήλη "dept" χωρίς να δημιουργηθεί το ευρετήριο. Σε απάντηση, το σφάλμα επιστράφηκε.

Cassandra Δημιουργία ευρετηρίου

Εδώ είναι το στιγμιότυπο όπου δημιουργείται ευρετήριο στη στήλη τμήματος.

Cassandra Δημιουργία ευρετηρίου

Create index DeptIndex on University.Student(dept);

Εδώ είναι το στιγμιότυπο όπου θα φιλτραριστεί επιτυχώς η στήλη 'dept'.

Cassandra Δημιουργία ευρετηρίου

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

Cassandra Απόθεση ευρετηρίου

Η εντολή "Drop index" απορρίπτει το καθορισμένο ευρετήριο. Εάν το όνομα ευρετηρίου δεν δόθηκε κατά τη δημιουργία ευρετηρίου, τότε το όνομα ευρετηρίου είναι TableName_ColumnName_idx.

  • Εάν το ευρετήριο δεν υπάρχει, θα επιστρέψει ένα σφάλμα εκτός και αν χρησιμοποιηθεί IF EXISTS που θα επιστρέψει no-op.
  • Κατά τη δημιουργία ευρετηρίου, πρέπει να καθορίσετε το όνομα χώρου κλειδιού με το όνομα ευρετηρίου, διαφορετικά το ευρετήριο θα απορριφθεί από τον τρέχοντα χώρο κλειδιών.

Σύνταξη

Drop index IF EXISTS KeyspaceName.IndexName

Παράδειγμα

Εδώ είναι το στιγμιότυπο της εκτελεσθείσας εντολής 'Drop index' που ρίχνει το ευρετήριο DeptIndex.

Cassandra Απόθεση ευρετηρίου

drop index IF EXISTS University.DeptIndex;

Μετά την επιτυχή εκτέλεση της εντολής, το DeptIndex θα απορριφθεί από τον χώρο κλειδιών. Τώρα τα δεδομένα δεν μπορούν να φιλτραριστούν από το τμήμα στήλης.