Indeksid on igas andmebaasis väga olulised ja MongoDB-ga pole see erinev. Indeksite kasutamisel muutub MongoDB-s päringute esitamine tõhusamaks.
Kui teil oli kogu tuhandete indeksideta dokumentidega ja siis otsite teatud dokumentide leidmiseks päringuid, peaks MongoDB sellisel juhul dokumentide leidmiseks kogu kogu skannima. Aga kui teil oleks indeksid, kasutaks MongoDB neid indekse, et piirata kogu dokumentides leiduvate dokumentide arvu.
Indeksid on spetsiaalsed andmekogumid, mis salvestavad osalise osa kogu andmetest. Kuna andmed on osalised, on nende andmete lugemine lihtsam. See osaline komplekt salvestab konkreetse välja väärtuse või väljade komplekti, mis on järjestatud välja väärtuse järgi.
Selles õpetuses saate teada -
- Indeksite mõju mõistmine
- Indeksite loomine: createIndex ()
- Indeksite leidmine: getindexes ()
- Indeksite langetamine: dropindex ()
Indeksite mõju mõistmine
Ehkki sissejuhatusest alates oleme näinud, et indeksid on head päringute jaoks, kuid liiga paljude indeksite olemasolu võib aeglustada muid toiminguid, näiteks sisestamise, kustutamise ja värskendamise toiminguid.
Kui dokumentidele tehakse sageli sisestamise, kustutamise ja värskendamise toiminguid, peaksid indeksid seda sageli muutma, mis oleks lihtsalt kogu jaoks üldkuluks.
Allpool toodud näide näitab näidet selle kohta, millised väljaväärtused võiksid olla kogu indeks. Indeks võib põhineda kas ainult ühel kollektsiooni väljal või see võib põhineda kollektsiooni mitmel väljal.
Allpool toodud näites kasutatakse kollektsiooni dokumentide indekseerimiseks Employeeid "1" ja EmployeeCode "AA". Nii et kui päring on tehtud, kasutatakse neid indekse kogumikus vajalike dokumentide kiireks ja tõhusaks leidmiseks.
Nii et isegi kui otsingupäring põhineb EmployeeCode "AA"-l, tagastatakse see dokument.
Indeksite loomine: createIndex ()
Indeksi loomine MongoDB-s toimub meetodi " createIndex " abil.
Järgmine näide näitab, kuidas lisada indeks kogusse. Oletame, et meil on sama töötajate kollektsioon, millel on väljade nimed "Employeeid" ja "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Koodi selgitus:
- CreateIndex meetodit kasutatakse, et luua indeks põhineb "EmployeeID" dokumendi.
- Parameeter '1' näitab, et kui indeks luuakse välja "Employeeid" väärtustega, tuleks need sortida kasvavas järjekorras. Pange tähele, et see erineb väljast _id (välja ID-d kasutatakse kogu kollektsiooni iga dokumendi kordumatuks tuvastamiseks), mille MongoDB loob kogu automaatselt kollektsiooni. Dokumendid sorteeritakse nüüd vastavalt töötajale, mitte väljale _id.
Kui käsk käivitatakse edukalt, kuvatakse järgmine väljund:
Väljund:
- NumIndexesBefore: 1 tähistab väljade väärtuste arvu (kogu tegelikud väljad), mis olid indeksites enne käsu käivitamist. Pidage meeles, et igal kollektsioonil on väli _id, mis loetakse ka indeksi välja väärtuseks. Kuna _id indeksi väli on selle loomisel osa kollektsioonist, on numIndexesBefore väärtus 1.
- NumIndexesAfter: 2 tähistab väljade väärtuste arvu, mis olid pärast käsu käivitamist indeksites.
- Siin määrab väljund "ok: 1", et toiming õnnestus, ja kogu kollektsiooni lisatakse uus indeks.
Ülaltoodud kood näitab, kuidas luua indeks ühe välja väärtuse põhjal, kuid võib luua ka mitme välja väärtuse põhjal indeksi.
Järgmine näide näitab, kuidas seda saab teha;
db.Employee.createIndex({Employeeid:1, EmployeeName:1])
Koodi selgitus:
- Meetod createIndex võtab nüüd arvesse mitmeid välja väärtusi, mis põhjustavad nüüd indeksi loomise põhinedes "Employeeid" ja "EmployeeName". Employeeid: 1 ja EmployeeName: 1 näitavad, et indeks tuleks luua nendel kahel väljaväärtusel: 1 näitab, et see peaks olema kasvavas järjekorras.
Indeksite leidmine: getindexes ()
Indeksi leidmine MongoDB-s toimub meetodi "getIndexes" abil.
Järgmine näide näitab, kuidas seda saab teha;
db.Employee.getIndexes()
Koodi selgitus:
- Kogus leiduvate kõigi indeksite leidmiseks kasutatakse meetodit getIndexes.
Kui käsk käivitatakse edukalt, kuvatakse järgmine väljund:
Väljund:
- Väljund tagastab dokumendi, mis näitab lihtsalt, et kogu on 2 indeksit, mis on väli _id, ja teine on väli Töötaja ID. : 1 näitab, et indeksi välja väärtused luuakse kasvavas järjekorras.
Indeksite langetamine: dropindex ()
Indeksi eemaldamine MongoDB-s toimub meetodi dropIndex abil.
Järgmine näide näitab, kuidas seda saab teha;
db.Employee.dropIndex(Employeeid:1)
Koodi selgitus:
- Meetod dropIndex võtab vajalikud välja väärtused, mis tuleb indeksist eemaldada.
Kui käsk käivitatakse edukalt, kuvatakse järgmine väljund:
Väljund:
- NIndexesWas: 3 tähistab väljade väärtuste arvu, mis olid indeksites enne käsu käivitamist. Pidage meeles, et igal kollektsioonil on väli _id, mis loetakse ka indeksi välja väärtuseks.
- Väljund ok: 1 täpsustab, et toiming õnnestus ja väli "Employeeid" eemaldatakse registrist.
Kõigi kogu indeksite korraga eemaldamiseks võite kasutada käsku dropIndexes.
Järgmine näide näitab, kuidas seda saab teha.
db.Employee.dropIndex()
Koodi selgitus:
- Meetod dropIndexes loobib kõik indeksid, välja arvatud indeks _id.
Kui käsk käivitatakse edukalt, kuvatakse järgmine väljund:
Väljund:
- NIndexesWas: 2 tähistab väljade väärtuste arvu, mis olid indeksites enne käsu käivitamist.
- Pidage veel kord meeles, et igal kollektsioonil on väli _id, mida loetakse ka indeksi välja väärtuseks ja mida MongoDB ei eemalda ning seda see teade näitab.
- Väljund ok: 1 täpsustab, et toiming õnnestus.
Kokkuvõte
- Indeksite määratlemine on oluline kogu dokumentide kiiremaks ja tõhusamaks otsimiseks.
- Indekseid saab luua meetodi createIndex abil. Indekseid saab luua ainult ühele väljale või mitmele väljale.
- Indeksid leiate meetodi getIndexes abil.
- Indekse saab eemaldada, kasutades üksikute indeksite jaoks dropIndexi või kõigi indeksite kukutamiseks dropIndexes.