Uvod u MongoDB kreiranje indeksa

MongoDB koristi složeno vađenje podataka, algoritmi za analizu podataka za upravljanje, izmjenu i uređenje podataka na kojima rade. Podaci s kojima se bave su humozni i zahtijevaju učinkovito rukovanje. Indeksi u DBMS-u pomažu u povećanju performansi upita poput dohvaćanja i ažuriranja podataka. Zamislite kolekciju koja sadrži stotine dokumenata. Da bi pronašao dokumente koji se podudaraju s određenim filterom, MongoDB bi ga trebao filtrirati prema svim dokumentima koji se nalaze u zbirci, što je mučno i dugotrajno. Umjesto indeksiranja dokumenata (polja) značajno će se smanjiti vrijeme pretraživanja. U ovoj ćemo temi upoznati MongoDB kreiranje indeksa.

Indeksi su strukture podataka koje su prepune djelomičnih podataka u sebi. Indeks pohranjuje vrijednost određenog polja (polja) u dokumentima na ispravan način koji podržava operacije kao što su komparatori, ekvatori i upiti na temelju raspona redoslijedom.

Osnovna sintaksa za kreiranje indeksa

db.collectionName.createIndex(, )

ključeviKljučevi je dokument koji sadrži par vrijednosti polja u kojem je polje indeksni ključ, a vrijednost je vrsta indeksa.

Na primjer, vrijednost je 1 za sortiranje indeksnog ključa u uzlaznom redoslijedu i -1 u silaznom redoslijedu

OpcijeOpcija (e) je dokument koji sadrži skup opcija koje utječu na stvaranje indeksa. Ove su opcije izborne.

Vrste indeksa

Ovdje su navedene vrste indeksa

1. Zadani id

Svaki dokument iz kolekcije Mongo sadrži indeks

zadani naziv "_id". ID objekta stvara se tijekom stvaranja dokumenta ako nisu prisutne vrijednosti indeksa.

2. Jedno polje

Indeksiranje se provodi na jednom polju i operacija sortiranja je uzlazna ili silazna jer MongoDB može prijeći u bilo kojem smjeru.

Primjer: db.collection.createIndex (("dob": 1))

3. Sastavni indeks

MongoDB podržava korisnički definirane indekse u više polja. Redoslijed polja danih u složenom indeksu prilično je značajan. Redoslijed sortiranja traje s lijeva na desno, a wrt prioriteta prema prvom polju navedenom u indeksima složenih je veći od sljedećeg.

Primjer: db.collection.createIndex (("dob": 1, "dim.h": - 1)). U ovom su primjeru svi dokumenti s dobnim poljem prvo razvrstani uzlaznim redoslijedom, a potom prema silaznom redoslijedu visine u dim.

4. Multikey indeks

MongoDB koristi Multikey Index za indeksiranje podataka koji su u formatu polja. Tijekom indeksiranja svaki se element u nizu kreira u zasebnom indeksu i podaci se indeksiraju na temelju elemenata koji su prisutni u nizu.MongoDB vodi računa ako polje indeksa zadano ima niz u njemu.

5. Geoprostorni indeks

MongoDB koristi Geospacijalno indeksiranje kako bi pronašao podatke na temelju svoje lokacije. Podržava dvije vrste pretraživanja, 2D (dvodimenzionalno) i 3D (trodimenzionalno). Ovi indeksi koriste se za dobivanje rezultata unutar raspona. Broj rezultata pretraživanja može se ograničiti i pomoću funkcije limit ().

Primjer: db.players.find ((loc: ($ near: ($ geometry: (type: "high_school", sport: "košarka" dob: (14, 17)))))). Ovaj će primjer pronaći sve podatke učenika koji su u srednjoj školi, igraju košarku i nalaze se u dobnom rasponu od 14 do 17.

6. Tekstni indeks

MongoDB nudi indeksiranje teksta za podršku upitima u nizu. Tekstni indeks može imati bilo koja polja koja se sastoje od elemenata niza ili niza elemenata niza.
Primjer: db.movies.find (($ text: ($ search: “tom hardy”))). U ovom primjeru naći ćete sve dokumente koji imaju imena glumaca poput Tom Hanks, Tom Felton, Tom Hiddelson, kao i Robert Hardy i John Hardy. MongoDB uzima niz koji je predviđen za pretraživanje i daje sve dokumente koji u njemu imaju potpun ili djelomičan niz.

7. Izbrisani indeks

MongoDB koristi raspršeni indeks za podršku štrajkovanju. Hashing indeksi izračunavaju hash vrijednost indeksnih polja pomoću hash funkcije. Ne podržava indeksiranje s više ključeva (vrijednosti polja). Hash indeksi kreiraju se pomoću createIndex funkcije i vrijednost polja indeksa uvijek bi trebala biti 'hashed'.

Primjer: db.collection.createIndex ((: “hashed”)) . Da biste pronašli dokumente s hash vrijednostima, db.collection.find ((: Math.pow (2, 63))) će vratiti sve dokumente sa hash indeksima u rasponu 2 63.

Opcije za indeksiranje

1. Jedinstveni indeks

Kao što ime govori, jedinstveni su indeksi jedinstvene prirode. MongoDB ne dopušta duplicirane vrijednosti ako je indeks kreiran pomoću opcije "jedinstveno". Da biste odredili da je indeks jedinstven tijekom stvaranja indeksa, treba koristiti sljedeći format.

db.collection.createIndex (, (jedinstveno: istinito)) . Jedinstvena ograničenja mogu se nametati i na indeksu složene, višestrukoj tipci i indeksu teksta.

2. Djelomični indeks

Djelomični indeksi indeksiraju dokumente zbirke na temelju određenog filtra ili izraza. Budući da se djelomični indeksi indeksiraju, samo je podskupina zahtjeva prostora za prikupljanje podataka (memorije) manja i to također rezultira smanjenom radnom snagom.

Primjer :

db.pupils.createIndex ((ime: 1), (djelomični izraz: (dob: ($ gt: 5)))
Podržani izrazi filtriranja:

  • $ gt, $ gte, $ lt, $ lte (veće od, veće ili jednako, manje od i manje od ili jednako)
  • Operatori tipa $
  • $ postoji: istinska operacija
  • Operator za jednakost ($ eq)
  • Logičke i, ili operacije

3. TTL indeks

TTL indeksira posebnu vrstu indeksa s jednim ključem koji se mogu izbrisati iz MongoDB kolekcije nakon isteka vremena ili određenog sata. Neke aplikacije koje bilježe strojno generirane podatke ili zapisnike koji bi nakon nekog vremena eventualno bili nevažeći, to smatraju vrlo koristan.

Primjer:

db.log.createIndex (("lastModifiedDate": 1), (expireAfterSeconds: 10000))

4. Redak indeks

Redki indeksi indeksiraju samo dokumente koji sadrže vrijednost polja indeksa. Zanemaruje sve ostale dokumente koji ne sadrže polje. Prema zadanim postavkama, ne-rijetki indeksi sadrže sve dokumente u zbirkama, a vrijednost je nužna za ona polja koja nema.

Primjer:

db.pupil.createIndex (("dob": 1), (sparse: true))
Indeks ne indeksira dokumente koji ne sadrže starost polja.

5. Indeks neosjetljivih na slučajeve

Indeksi neosjetljivi na slučajeve koriste se za podršku upitima koji izvršavaju usporedbe niza bez ikakvog poštovanja o osjetljivosti slučaja.

Primjer:

db.collection.createIndex (("tipka": 1), (collation:))

uspoređivanje:

Dokument za usporedbu koristi se za određivanje jezičnih pravila, slova slova itd … za usporedbu niza.

Dokumenti za prikupljanje sastoje se od sljedećeg:

Zaključak - MongoDB kreira indeks

Zaključno, indeksiranje je ključno za brže izvršavanje upita i upravljanja memorijom. Indeksi se mogu kreirati, mijenjati prema potrebama korisnika i ispadati kad nisu potrebni.

Preporučeni članci

Ovo je vodič za MongoDB kreiranje indeksa. Ovdje raspravljamo o vrstama indeksa i opcijama za indeksiranje zajedno s primjerima. Možete pogledati i sljedeći članak da biste saznali više -

  1. MongoDB alati
  2. Što je MongoDB?
  3. Replikacija u MongoDB
  4. Prednosti MongoDB-a

Kategorija: