Úvod do tvorby indexu MongoDB

MongoDB sa používa na komplexné získavanie údajov, algoritmy analýzy údajov na správu, úpravu a usporiadanie údajov, na ktorých pracujú. Údaje, s ktorými nakladajú, sú humongové a vyžadujú si efektívne zaobchádzanie. Indexy v DBMS pomáhajú zvyšovať výkonnosť otázok, ako je načítanie a aktualizácia údajov. Predstavte si kolekciu, ktorá obsahuje stovky dokumentov. Na nájdenie dokumentov, ktoré sa zhodujú s konkrétnym filtrom, by MongoDB musel porovnávať filter so všetkými dokumentmi, ktoré sú v kolekcii, čo je únavné a časovo náročné. Namiesto indexovania dokumentov (polí) sa čas vyhľadávania výrazne skráti. V tejto téme sa dozvieme o vytvorení indexu MongoDB.

Indexy sú dátové štruktúry, ktoré sú plné čiastkových dátových súborov v sebe. Index ukladá hodnotu konkrétneho poľa (polí) v dokumentoch usporiadaným spôsobom, ktorý podporuje operácie, ako sú porovnávače, rovníky a dotazy založené na rozsahu, v sekvenčnom poradí.

Základná syntax na vytvorenie indexu

db.collectionName.createIndex(, )

klávesyKeys je dokument, ktorý obsahuje pár hodnôt poľa, kde je pole kľúčom index a hodnota je typ indexu.

Napríklad hodnota 1 je pre triedenie indexového kľúča vo vzostupnom poradí a -1 v zostupnom poradí

možnostiMožnosť (-e) je dokument, ktorý obsahuje množinu možností, ktoré ovplyvňujú vytváranie indexov. Tieto možnosti sú voliteľné.

Typy indexov

Nižšie sú uvedené typy indexov

1. Predvolené ID

Každý dokument prítomný v kolekcii Mongo obsahuje index

predvolene s názvom „_id“. ID objektu sa vytvorí počas vytvárania dokumentu, ak nie sú k dispozícii žiadne hodnoty indexu.

2. Jedno pole

Indexovanie sa vykonáva na jednom poli a operácia triedenia je buď vzostupná alebo zostupná, pretože MongoDB môže prechádzať v oboch smeroch.

Príklad: db.collection.createIndex ((„age“: 1))

3. Index zložiek

MongoDB podporuje užívateľom definované indexy vo viacerých poliach. Poradie polí uvedených v zloženom indexe je dosť významné. Poradie triedenia trvá zľava doprava, priorita wrt do prvého poľa uvedeného v zložených indexoch je vyššia ako u nasledujúceho.

Príklad: db.collection.createIndex ((„vek“: 1, „dim.h“: - 1)). V tomto príklade sú všetky dokumenty s vekovým poľom najprv zoradené vzostupne a potom zostupne podľa výšky v matnom.

4. Multikey Index

MongoDB používa index Multikey Index na indexovanie údajov vo formáte poľa. Pri indexovaní sa každý prvok v poli vytvorí samostatný index a údaje sa indexujú na základe prvku (prvkov) prítomných v poli. MongoDB sa postará o to, aby pole indexu v predvolenom nastavení obsahovalo pole.

5. Geospatial Index

MongoDB používa geopriestorové indexovanie na nájdenie údajov na základe jeho umiestnenia. Podporuje dva typy vyhľadávania, 2D (dvojrozmerné) a 3D (trojrozmerné). Tieto indexy sa používajú na získanie výsledkov v rozsahu. Počet výsledkov vyhľadávania môže byť tiež obmedzený pomocou funkcie limit ().

Príklad: db.players.find ((loc: ($ near: ($ geometry: (type: "high_school", sport: "basketball" vek: (14, 17)))))). V tomto príklade nájdete všetky záznamy študentov, ktorí sú v strednej škole, hrajú basketbal a sú vo veku od 14 do 17 rokov.

6. Textový index

MongoDB poskytuje indexovanie textu na podporu dotazov vo formáte reťazca. Textový index môže mať akékoľvek polia, ktoré pozostávajú z prvkov reťazca alebo zo súboru prvkov reťazca.
Príklad: db.movies.find (($ text: ($ search: “tom hardy”)))). V tomto príklade nájdete všetky dokumenty, ktoré majú mená hercov, ako napríklad hanks, tom felton, hiddelson, ako aj robert hardy a john vytrvalý. MongoDB prevezme reťazec určený na vyhľadávanie a poskytne všetky dokumenty, ktoré obsahujú úplný alebo čiastočný vyhľadávací reťazec.

7. Hašovaný index

MongoDB používa hashovaný index na podporu ostreľovania. Hašovacie indexy vypočítavajú hashovaciu hodnotu indexových polí pomocou hashovacej funkcie. Nepodporuje indexovanie viacerých kľúčov (hodnoty polí). Indexy hash sa vytvárajú pomocou funkcie createIndex a hodnota indexového poľa by mala byť vždy „hash“.

Príklad: db.collection.createIndex ((: „hashed“)) . Ak chcete nájsť dokumenty s hodnotami hash, program db.collection.find ((: Math.pow (2, 63))) vráti všetky dokumenty s indexmi hash v rozsahu 2 63.

Možnosti indexovania

1. Unikátny index

Ako už názov napovedá, jedinečné indexy sú svojou povahou jedinečné. MongoDB nepovoľuje duplicitné hodnoty, ak je index vytvorený pomocou voľby „jedinečný“. Na určenie, že index je jedinečný pri vytváraní indexu, by sa mal použiť nasledujúci formát.

db.collection.createIndex (, (unique: true)) . Jedinečné obmedzenia môžu byť uložené aj pre zložený index, index pre viacnásobný index a textový index.

2. Čiastkový index

Čiastočné indexy indexujú dokumenty kolekcie na základe špecifického filtra alebo výrazu. Pretože index čiastkových indexov je menší ako podskupina požiadaviek na priestor zhromažďovania (pamäte), čo má tiež za následok zníženie výkonu.

Príklad :

db.pupils.createIndex ((name: 1), (čiastočneFilterExpression: (age: ($ gt: 5)))
Podporované výrazy filtra:

  • $ gt, $ gte, $ lt, $ lte (väčšie ako, väčšie alebo rovnaké, menšie ako a menšie ako alebo rovnaké)
  • Operátory typu $
  • $ existuje: skutočná operácia
  • Operátor rovnosti ($ eq)
  • Logické a / alebo operácie

3. TTL index

TTL indexuje špeciálny druh indexov jedného kľúča, ktoré môžu byť vymazané z kolekcie MongoDB po uplynutí časového limitu alebo v konkrétnom časovom limite. Niektoré aplikácie, ktoré zaznamenávajú údaje vygenerované strojom alebo protokoly, ktoré by nakoniec boli po určitom časovom období neplatné, to zistia veľmi užitočné.

Príklad:

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

4. riedky index

Rozriedené indexy indexujú iba dokumenty, ktoré obsahujú hodnotu poľa indexu. Ignoruje všetky ostatné dokumenty, ktoré toto pole neobsahujú. Nepriehľadné indexy štandardne obsahujú všetky dokumenty v kolekciách, pričom null je hodnota pre tie polia, ktoré nie sú k dispozícii.

Príklad:

db.pupil.createIndex ((„age“: 1), (sparse: true))
Index neindexuje dokumenty, ktoré neobsahujú vek poľa.

5. Index nerozlišujúci veľkosť písmen

Indexy necitlivé na veľkosť písmen sa používajú na podporu otázok, ktoré vykonávajú porovnania reťazcov bez ohľadu na citlivosť na veľké a malé písmená.

Príklad:

db.collection.createIndex ((„key“: 1), (collation:))

kolace:

Zoraďovací dokument sa používa na špecifikáciu jazykových pravidiel, malých a veľkých písmen atď. Na porovnávanie reťazcov.

Zoraďovacie dokumenty pozostávajú z týchto dokumentov:

Záver - MongoDB vytvorí index

Záverom možno povedať, že indexovanie je rozhodujúce pre rýchlejšie vykonávanie otázok a správu pamäte. Indexy je možné vytvárať, upravovať podľa požiadaviek používateľov av prípade potreby ich vynechávať.

Odporúčané články

Toto je sprievodca vytvorením indexu MongoDB. Tu diskutujeme typy indexov a možnosti indexovania spolu s príkladmi. Viac informácií nájdete aj v nasledujúcom článku -

  1. Nástroje MongoDB
  2. Čo je MongoDB?
  3. Replikácia v MongoDB
  4. Výhody MongoDB