MongoDB Εκμάθηση ευρετηρίασης – Παράδειγμα createIndex(), dropindex().
Τα ευρετήρια είναι πολύ σημαντικά σε κάθε βάση δεδομένων και με MongoDB δεν είναι διαφορετικό. Με τη χρήση ευρετηρίων, εκτέλεση ερωτημάτων σε MongoDB γίνεται πιο αποτελεσματική.
Εάν είχατε μια συλλογή με χιλιάδες έγγραφα χωρίς ευρετήρια και στη συνέχεια ζητάτε να βρείτε ορισμένα έγγραφα, τότε σε αυτήν την περίπτωση MongoDB θα χρειαστεί να σαρώσει ολόκληρη τη συλλογή για να βρει τα έγγραφα. Αλλά αν είχατε ευρετήρια, MongoDB θα χρησιμοποιούσε αυτά τα ευρετήρια για να περιορίσει τον αριθμό των εγγράφων που έπρεπε να αναζητηθούν στη συλλογή.
Τα ευρετήρια είναι ειδικά σύνολα δεδομένων που αποθηκεύουν ένα μέρος των δεδομένων της συλλογής. Δεδομένου ότι τα δεδομένα είναι μερικώς, γίνεται ευκολότερη η ανάγνωση αυτών των δεδομένων. Αυτό το μερικό σύνολο αποθηκεύει την τιμή ενός συγκεκριμένου πεδίου ή ενός συνόλου πεδίων ταξινομημένα με βάση την τιμή του πεδίου.
Κατανόηση του αντίκτυπου των δεικτών
Τώρα, παρόλο που από την εισαγωγή είδαμε ότι τα ευρετήρια είναι καλά για ερωτήματα, αλλά η ύπαρξη πάρα πολλών ευρετηρίων μπορεί να επιβραδύνει άλλες λειτουργίες όπως η λειτουργία Εισαγωγή, Διαγραφή και Ενημέρωση.
Εάν εκτελούνται συχνά εργασίες εισαγωγής, διαγραφής και ενημέρωσης σε έγγραφα, τότε τα ευρετήρια θα πρέπει να αλλάζουν τόσο συχνά, κάτι που θα ήταν απλώς μια επιβάρυνση για τη συλλογή.
Το παρακάτω παράδειγμα δείχνει ένα παράδειγμα του ποιες τιμές πεδίων θα μπορούσαν να αποτελέσουν ευρετήριο σε μια συλλογή. Ένα ευρετήριο μπορεί είτε να βασίζεται σε ένα μόνο πεδίο της συλλογής είτε να βασίζεται σε πολλά πεδία της συλλογής.
Στο παρακάτω παράδειγμα, το Employeeid "1" και το EmployeeCode "AA" χρησιμοποιούνται για την ευρετηρίαση των εγγράφων της συλλογής. Έτσι, όταν γίνεται μια αναζήτηση ερωτήματος, αυτά τα ευρετήρια θα χρησιμοποιηθούν για την γρήγορη και αποτελεσματική εύρεση των απαιτούμενων εγγράφων στη συλλογή.
Έτσι, ακόμα κι αν το ερώτημα αναζήτησης βασίζεται στον EmployeeCode "AA", αυτό το έγγραφο θα επιστραφεί.
Πώς να δημιουργήσετε ευρετήρια: createIndex()
Δημιουργία ευρετηρίου σε MongoDB γίνεται χρησιμοποιώντας το «δημιουργία ΕυρετηρίουΜέθοδος.
Το ακόλουθο παράδειγμα δείχνει τον τρόπο προσθήκης ευρετηρίου στη συλλογή. Ας υποθέσουμε ότι έχουμε την ίδια συλλογή Υπαλλήλων που έχει τα ονόματα πεδίων "Employeeid" και "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Επεξήγηση κώδικα:
- The δημιουργία Ευρετηρίου Η μέθοδος χρησιμοποιείται για τη δημιουργία ενός ευρετηρίου με βάση το "Employeeid" του εγγράφου.
- Η παράμετρος '1' υποδεικνύει ότι όταν το ευρετήριο δημιουργείται με τις τιμές του πεδίου "Employeeid", θα πρέπει να ταξινομηθούν με αύξουσα σειρά. Λάβετε υπόψη ότι αυτό διαφέρει από το πεδίο _id (Το πεδίο id χρησιμοποιείται για τον μοναδικό προσδιορισμό κάθε εγγράφου στη συλλογή) που δημιουργείται αυτόματα στη συλλογή από MongoDB. Τα έγγραφα θα ταξινομηθούν πλέον σύμφωνα με το Employeeid και όχι το πεδίο _id.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:
Παραγωγή:
- Το numIndexesBefore: 1 υποδεικνύει τον αριθμό των τιμών Πεδίου (Τα πραγματικά πεδία της συλλογής) που υπήρχαν στα ευρετήρια πριν από την εκτέλεση της εντολής. Να θυμάστε ότι κάθε συλλογή έχει το πεδίο _id το οποίο επίσης μετράει ως τιμή πεδίου στο ευρετήριο. Δεδομένου ότι το πεδίο ευρετηρίου _id είναι μέρος της συλλογής όταν δημιουργείται αρχικά, η τιμή του numIndexesBefore είναι 1.
- Το numIndexesAfter: 2 υποδεικνύει τον αριθμό των τιμών Πεδίου που υπήρχαν στα ευρετήρια μετά την εκτέλεση της εντολής.
- Εδώ η έξοδος "ok: 1" προσδιορίζει ότι η λειτουργία ήταν επιτυχής και το νέο ευρετήριο προστίθεται στη συλλογή.
Ο παραπάνω κώδικας δείχνει πώς να δημιουργήσετε ένα ευρετήριο με βάση μια τιμή πεδίου, αλλά μπορείτε επίσης να δημιουργήσετε ένα ευρετήριο με βάση πολλές τιμές πεδίου.
Το ακόλουθο παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.
db.Employee.createIndex({Employeeid:1, EmployeeName:1])
Επεξήγηση κώδικα:
- Η μέθοδος createIndex λαμβάνει πλέον υπόψη πολλαπλές τιμές Πεδίου που θα αναγκάσουν τώρα τη δημιουργία του ευρετηρίου με βάση τα "Employeeid" και "EmployeeName". Το Employeeid:1 και το EmployeeName:1 υποδεικνύουν ότι το ευρετήριο πρέπει να δημιουργηθεί σε αυτές τις 2 τιμές πεδίων με το :1 να υποδεικνύει ότι πρέπει να είναι σε αύξουσα σειρά.
Πώς να βρείτε ευρετήρια: getindexes()
Εύρεση ευρετηρίου σε MongoDB γίνεται με τη χρήση του "getIndexes" μέθοδος.
Το ακόλουθο παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.
db.Employee.getIndexes()
Επεξήγηση κώδικα:
- Η μέθοδος getIndexes χρησιμοποιείται για την εύρεση όλων των ευρετηρίων σε μια συλλογή.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:
Παραγωγή:
- Η έξοδος επιστρέφει ένα έγγραφο που δείχνει απλώς ότι υπάρχουν 2 ευρετήρια στη συλλογή που είναι το πεδίο _id και το άλλο είναι το πεδίο Αναγνωριστικό υπαλλήλου. Το :1 υποδεικνύει ότι οι τιμές των πεδίων στο ευρετήριο δημιουργούνται με αύξουσα σειρά.
Τρόπος απόρριψης ευρετηρίων: dropindex()
Αφαίρεση ευρετηρίου σε MongoDB γίνεται χρησιμοποιώντας τη μέθοδο dropIndex.
Το ακόλουθο παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.
db.Employee.dropIndex(Employeeid:1)
Επεξήγηση κώδικα:
- Η μέθοδος dropIndex λαμβάνει τις απαιτούμενες τιμές Πεδίου που πρέπει να αφαιρεθούν από το Ευρετήριο.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:
Παραγωγή:
- Το nIndexesWas: 3 υποδεικνύει τον αριθμό των τιμών Πεδίου που υπήρχαν στα ευρετήρια πριν από την εκτέλεση της εντολής. Να θυμάστε ότι κάθε συλλογή έχει το πεδίο _id το οποίο επίσης μετράει ως τιμή πεδίου στο ευρετήριο.
- Η έξοδος ok: 1 προσδιορίζει ότι η λειτουργία ήταν επιτυχής και το πεδίο "Employeeid" αφαιρείται από το ευρετήριο.
Για να αφαιρέσετε όλα τα ευρετήρια ταυτόχρονα στη συλλογή, μπορείτε να χρησιμοποιήσετε την εντολή dropIndexes.
Το παρακάτω παράδειγμα δείχνει πώς μπορεί να γίνει αυτό.
db.Employee.dropIndex()
Επεξήγηση κώδικα:
- Η μέθοδος dropIndexes θα απορρίψει όλα τα ευρετήρια εκτός από το ευρετήριο _id.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος:
Παραγωγή:
- Το nIndexesWas: 2 υποδεικνύει τον αριθμό των τιμών Πεδίου που υπήρχαν στα ευρετήρια πριν από την εκτέλεση της εντολής.
- Θυμηθείτε ξανά ότι κάθε συλλογή έχει το πεδίο _id το οποίο επίσης μετράει ως τιμή πεδίου στο ευρετήριο και το οποίο δεν θα αφαιρεθεί από MongoDB και αυτό δείχνει αυτό το μήνυμα.
- Το ok: 1 έξοδος προσδιορίζει ότι η λειτουργία ήταν επιτυχής.
Σύνοψη
- Ο καθορισμός ευρετηρίων είναι σημαντικός για την ταχύτερη και αποτελεσματική αναζήτηση εγγράφων σε μια συλλογή.
- Τα ευρετήρια μπορούν να δημιουργηθούν χρησιμοποιώντας τη μέθοδο createIndex. Τα ευρετήρια μπορούν να δημιουργηθούν σε ένα μόνο πεδίο ή σε πολλαπλές τιμές πεδίων.
- Τα ευρετήρια μπορούν να βρεθούν χρησιμοποιώντας τη μέθοδο getIndexes.
- Τα ευρετήρια μπορούν να αφαιρεθούν χρησιμοποιώντας το dropIndex για μεμονωμένα ευρετήρια ή το dropIndex για την απόρριψη όλων των ευρετηρίων.