MongoDB Indexing Tutorial - createIndex (), dropindex () Παράδειγμα

Τα ευρετήρια είναι πολύ σημαντικά σε οποιαδήποτε βάση δεδομένων και με το MongoDB δεν διαφέρει. Με τη χρήση ευρετηρίων, η εκτέλεση ερωτημάτων στο MongoDB γίνεται πιο αποτελεσματική.

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

Τα ευρετήρια είναι ειδικά σύνολα δεδομένων που αποθηκεύουν ένα μέρος των δεδομένων της συλλογής. Δεδομένου ότι τα δεδομένα είναι μερική, γίνεται ευκολότερη η ανάγνωση αυτών των δεδομένων. Αυτό το μερικό σύνολο αποθηκεύει την τιμή ενός συγκεκριμένου πεδίου ή ενός συνόλου πεδίων ταξινομημένων κατά την τιμή του πεδίου.

Σε αυτό το σεμινάριο, θα μάθετε -

  • Κατανόηση του αντίκτυπου των δεικτών
  • Τρόπος δημιουργίας ευρετηρίων: createIndex ()
  • Πώς να βρείτε ευρετήρια: getindexes ()
  • Τρόπος απόρριψης ευρετηρίων: dropindex ()

Κατανόηση του αντίκτυπου των δεικτών

Τώρα, παρόλο που από την εισαγωγή έχουμε δει ότι τα ευρετήρια είναι κατάλληλα για ερωτήματα, αλλά έχοντας πάρα πολλά ευρετήρια μπορούν να επιβραδύνουν άλλες λειτουργίες όπως η λειτουργία Εισαγωγή, Διαγραφή και Ενημέρωση.

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

Το παρακάτω παράδειγμα δείχνει ένα παράδειγμα για το ποιες τιμές πεδίου θα μπορούσαν να αποτελέσουν ένα ευρετήριο σε μια συλλογή. Ένα ευρετήριο μπορεί είτε να βασίζεται σε ένα μόνο πεδίο στη συλλογή, είτε μπορεί να βασίζεται σε πολλά πεδία στη συλλογή.

Στο παρακάτω παράδειγμα, το Employeeid "1" και το EmployeeCode "AA" χρησιμοποιούνται για την ευρετηρίαση των εγγράφων στη συλλογή. Έτσι, όταν πραγματοποιείται αναζήτηση ερωτήματος, αυτά τα ευρετήρια θα χρησιμοποιηθούν για τη γρήγορη και αποτελεσματική εύρεση των απαιτούμενων εγγράφων στη συλλογή.

Έτσι, ακόμη και αν το ερώτημα αναζήτησης βασίζεται στον EmployeeCode "AA", αυτό το έγγραφο θα επιστραφεί.

Τρόπος δημιουργίας ευρετηρίων: createIndex ()

Η δημιουργία ευρετηρίου στο MongoDB γίνεται χρησιμοποιώντας τη μέθοδο " createIndex ".

Το παρακάτω παράδειγμα δείχνει τον τρόπο προσθήκης ευρετηρίου στη συλλογή Ας υποθέσουμε ότι έχουμε την ίδια συλλογή υπαλλήλων που έχει τα ονόματα πεδίων "Employeeid" και "EmployeeName".

db.Employee.createIndex({Employeeid:1})

Επεξήγηση κώδικα:

  1. Η μέθοδος createIndex χρησιμοποιείται για τη δημιουργία ευρετηρίου με βάση το "Employeeid" του εγγράφου.
  2. Η παράμετρος '1' υποδεικνύει ότι όταν δημιουργείται το ευρετήριο με τις τιμές πεδίου "Υπάλληλος", πρέπει να ταξινομηθούν σε αύξουσα σειρά. Λάβετε υπόψη ότι αυτό είναι διαφορετικό από το πεδίο _id (Το πεδίο id χρησιμοποιείται για τον μοναδικό προσδιορισμό κάθε εγγράφου στη συλλογή) που δημιουργείται αυτόματα στη συλλογή από το MongoDB. Τα έγγραφα θα ταξινομηθούν τώρα σύμφωνα με το Υπάλληλο και όχι το πεδίο _id.

Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:

Παραγωγή:

  1. Το numIndexesBefore: 1 δείχνει τον αριθμό των τιμών πεδίου (Τα πραγματικά πεδία της συλλογής) που υπήρχαν εκεί στα ευρετήρια πριν από την εκτέλεση της εντολής. Να θυμάστε ότι κάθε συλλογή έχει το πεδίο _id που μετρά επίσης ως τιμή πεδίου στο ευρετήριο. Δεδομένου ότι το πεδίο ευρετηρίου _id αποτελεί μέρος της συλλογής όταν δημιουργήθηκε αρχικά, η τιμή του numIndexesBefore είναι 1.
  2. Το numIndexesAfter: 2 υποδεικνύει τον αριθμό των τιμών πεδίου που υπήρχαν στα ευρετήρια μετά την εκτέλεση της εντολής.
  3. Εδώ η έξοδος "ok: 1" καθορίζει ότι η λειτουργία ήταν επιτυχής και το νέο ευρετήριο προστίθεται στη συλλογή.

Ο παραπάνω κώδικας δείχνει πώς να δημιουργήσετε ένα ευρετήριο με βάση μια τιμή πεδίου, αλλά μπορεί επίσης να δημιουργήσετε ένα ευρετήριο με βάση πολλές τιμές πεδίου.

Το παρακάτω παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Επεξήγηση κώδικα:

  1. Η μέθοδος createIndex λαμβάνει τώρα υπόψη πολλές τιμές πεδίου που θα προκαλέσουν τη δημιουργία του ευρετηρίου με βάση το "Employeeid" και "EmployeeName". Το Employeeid: 1 και EmployeeName: 1 δηλώνει ότι το ευρετήριο πρέπει να δημιουργηθεί σε αυτές τις 2 τιμές πεδίου με το: 1 υποδεικνύοντας ότι θα πρέπει να είναι σε αύξουσα σειρά.

Πώς να βρείτε ευρετήρια: getindexes ()

Η εύρεση ευρετηρίου στο MongoDB γίνεται χρησιμοποιώντας τη μέθοδο "getIndexes" .

Το παρακάτω παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.

db.Employee.getIndexes()

Επεξήγηση κώδικα:

  1. Η μέθοδος getIndexes χρησιμοποιείται για την εύρεση όλων των ευρετηρίων σε μια συλλογή.

Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:

Παραγωγή:

  1. Η έξοδος επιστρέφει ένα έγγραφο που δείχνει ακριβώς ότι υπάρχουν 2 ευρετήρια στη συλλογή που είναι το πεδίο _id και το άλλο είναι το πεδίο Αναγνωριστικό υπαλλήλου. Το: 1 υποδεικνύει ότι οι τιμές πεδίου στο ευρετήριο δημιουργούνται με αύξουσα σειρά.

Τρόπος απόρριψης ευρετηρίων: dropindex ()

Η κατάργηση ενός ευρετηρίου στο MongoDB γίνεται χρησιμοποιώντας τη μέθοδο dropIndex.

Το παρακάτω παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.

db.Employee.dropIndex(Employeeid:1)

Επεξήγηση κώδικα:

  1. Η μέθοδος dropIndex λαμβάνει τις απαιτούμενες τιμές πεδίου που πρέπει να αφαιρεθούν από το ευρετήριο.

Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:

Παραγωγή:

  1. Το nIndexesWas: 3 υποδεικνύει τον αριθμό των τιμών πεδίου που υπήρχαν στα ευρετήρια πριν από την εκτέλεση της εντολής. Να θυμάστε ότι κάθε συλλογή έχει το πεδίο _id που μετρά επίσης ως τιμή πεδίου στο ευρετήριο.
  2. Η έξοδος ok: 1 καθορίζει ότι η λειτουργία ήταν επιτυχής και το πεδίο "Employeeid" καταργήθηκε από το ευρετήριο.

Για να αφαιρέσετε όλα τα ευρετήρια ταυτόχρονα στη συλλογή, μπορείτε να χρησιμοποιήσετε την εντολή dropIndexes.

Το παρακάτω παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.

db.Employee.dropIndex()

Επεξήγηση κώδικα:

  1. Η μέθοδος dropIndexes θα ρίξει όλα τα ευρετήρια εκτός από το ευρετήριο _id.

Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:

Παραγωγή:

  1. Το nIndexesWas: 2 υποδεικνύει τον αριθμό των τιμών πεδίου που υπήρχαν στα ευρετήρια πριν από την εκτέλεση της εντολής.
  2. Θυμηθείτε και πάλι ότι κάθε συλλογή έχει το πεδίο _id που επίσης μετρά ως τιμή πεδίου στο ευρετήριο και ότι δεν θα καταργηθεί από το MongoDB και αυτό δείχνει αυτό το μήνυμα.
  3. Η έξοδος ok: 1 καθορίζει ότι η λειτουργία ήταν επιτυχής.

Περίληψη

  • Ο καθορισμός ευρετηρίων είναι σημαντικός για ταχύτερη και αποτελεσματική αναζήτηση εγγράφων σε μια συλλογή.
  • Τα ευρετήρια μπορούν να δημιουργηθούν χρησιμοποιώντας τη μέθοδο createIndex. Τα ευρετήρια μπορούν να δημιουργηθούν σε ένα μόνο πεδίο ή σε πολλές τιμές πεδίου.
  • Μπορείτε να βρείτε ευρετήρια χρησιμοποιώντας τη μέθοδο getIndexes.
  • Τα ευρετήρια μπορούν να αφαιρεθούν χρησιμοποιώντας το dropIndex για μεμονωμένα ευρετήρια ή dropIndexes για την απόθεση όλων των ευρετηρίων.

ενδιαφέροντα άρθρα...