MongoDB indeksēšanas apmācība - createIndex (), dropindex () piemērs

Satura rādītājs:

Anonim

Indeksi ir ļoti svarīgi jebkurā datu bāzē, un ar MongoDB tas neatšķiras. Izmantojot Indeksus, vaicājumu izpilde MongoDB kļūst efektīvāka.

Ja jums bija kolekcija ar tūkstošiem dokumentu bez rādītājiem un pēc tam vaicājat, lai atrastu noteiktus dokumentus, tad šādā gadījumā MongoDB būtu jāpārskenē visa kolekcija, lai atrastu dokumentus. Bet, ja jums būtu indeksi, MongoDB izmantotu šos indeksus, lai ierobežotu to dokumentu skaitu, kuri krājumā bija jāmeklē.

Indeksi ir īpašas datu kopas, kurās glabājas daļēja kolekcijas datu daļa. Tā kā dati ir daļēji, tos ir vieglāk nolasīt. Šajā daļējā kopā tiek saglabāta noteikta lauka vai lauku kopas vērtība, kas sakārtota pēc lauka vērtības.

Šajā apmācībā jūs uzzināsiet -

  • Izpratne par indeksu ietekmi
  • Kā izveidot indeksus: createIndex ()
  • Kā atrast indeksus: getindexes ()
  • Kā nomest indeksus: dropindex ()

Izpratne par indeksu ietekmi

Lai gan no ievada mēs redzējām, ka indeksi ir piemēroti vaicājumiem, bet pārāk daudz indeksu var palēnināt citas darbības, piemēram, operāciju Ievietot, Dzēst un Atjaunināt.

Ja dokumentiem tiek veiktas biežas ievietošanas, dzēšanas un atjaunināšanas darbības, indeksi būtu jāmaina tik bieži, kas būtu tikai kolekcijas pieskaitāmās izmaksas.

Šajā piemērā parādīts piemērs tam, kādas lauka vērtības varētu veidot indeksu kolekcijā. Indekss var būt vai nu balstīts tikai uz vienu kolekcijas lauku, vai arī uz vairākiem kolekcijas laukiem.

Šajā piemērā kolekcijas dokumentu indeksēšanai tiek izmantoti Employeeid "1" un EmployeeCode "AA". Tātad, kad tiek veikta vaicājuma meklēšana, šie indeksi tiks izmantoti, lai ātri un efektīvi atrastu nepieciešamos dokumentus kolekcijā.

Tātad, pat ja meklēšanas vaicājuma pamatā ir EmployeeCode "AA", šis dokuments tiks atgriezts.

Kā izveidot indeksus: createIndex ()

Indeksa izveide MongoDB tiek veikta, izmantojot metodi " createIndex ".

Šis piemērs parāda, kā indeksu pievienot kolekcijai. Pieņemsim, ka mums ir tā pati darbinieku kolekcija, kurai ir lauku nosaukumi “Employeeid” un “EmployeeName”.

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

Koda skaidrojums:

  1. CreateIndex metode tiek izmantota, lai izveidotu indeksu, balstoties uz "Employeeid" dokumenta.
  2. Parametrs “1” norāda, ka, izveidojot indeksu ar lauka “Employeeid” vērtībām, tie jāšķiro augošā secībā. Lūdzu, ņemiet vērā, ka tas atšķiras no lauka _id (lauks ID tiek izmantots, lai unikāli identificētu katru kolekcijas dokumentu), kuru MongoDB automātiski izveido kolekcijā. Tagad dokumenti tiks sakārtoti atbilstoši Employeeid, nevis laukam _id.

Ja komanda tiek veiksmīgi izpildīta, tiks parādīta šāda izeja:

Izeja:

  1. NumIndexesBefore: 1 norāda to lauku vērtību skaitu (Faktiskie lauki kolekcijā), kas bija indeksos pirms komandas palaišanas. Atcerieties, ka katrai kolekcijai ir lauks _id, kas indeksā tiek skaitīta arī kā lauka vērtība. Tā kā indeksa lauks _id ir kolekcijas sastāvdaļa, kad tas sākotnēji tiek izveidots, numIndexesBefore vērtība ir 1.
  2. NumIndexesAfter: 2 norāda to lauku vērtību skaitu, kuras pēc komandas palaišanas bija indeksos.
  3. Šeit izeja "ok: 1" norāda, ka darbība bija veiksmīga, un kolekcijai tiek pievienots jauns indekss.

Iepriekš minētais kods parāda, kā izveidot indeksu, pamatojoties uz vienu lauka vērtību, bet var izveidot arī indeksu, pamatojoties uz vairākām lauka vērtībām.

Šis piemērs parāda, kā to var izdarīt;

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

Koda skaidrojums:

  1. Metode createIndex tagad ņem vērā vairākas lauka vērtības, kuru dēļ tagad indekss tiks izveidots, pamatojoties uz “Employeeid” un “EmployeeName”. Employeeid: 1 un EmployeeName: 1 norāda, ka indekss jāizveido šīm 2 lauka vērtībām ar: 1, kas norāda, ka tam jābūt augošā secībā.

Kā atrast indeksus: getindexes ()

Indeksa atrašana MongoDB tiek veikta, izmantojot metodi "getIndexes" .

Šis piemērs parāda, kā to var izdarīt;

db.Employee.getIndexes()

Koda skaidrojums:

  1. GetIndexes metodi izmanto, lai atrastu visus kolekcijas indeksus.

Ja komanda tiek veiksmīgi izpildīta, tiks parādīta šāda izeja:

Izeja:

  1. Izeja atgriež dokumentu, kas tikai parāda, ka kolekcijā ir 2 indeksi, kas ir lauks _id, bet otrs ir lauks Employee id. : 1 norāda, ka lauka vērtības indeksā ir izveidotas augošā secībā.

Kā nomest indeksus: dropindex ()

Indeksa noņemšana MongoDB tiek veikta, izmantojot dropIndex metodi.

Šis piemērs parāda, kā to var izdarīt;

db.Employee.dropIndex(Employeeid:1)

Koda skaidrojums:

  1. Metode dropIndex aizņem obligātās lauka vērtības, kas jānoņem no indeksa.

Ja komanda tiek veiksmīgi izpildīta, tiks parādīta šāda izeja:

Izeja:

  1. NIndexesWas: 3 norāda to lauka vērtību skaitu, kas bija indeksos pirms komandas palaišanas. Atcerieties, ka katrai kolekcijai ir lauks _id, kas indeksā tiek skaitīta arī kā lauka vērtība.
  2. Ok: 1 izvade norāda, ka darbība bija veiksmīga, un lauks "Employeeid" tiek noņemts no indeksa.

Lai noņemtu visus indeksus vienlaikus kolekcijā, var izmantot komandu dropIndexes.

Šis piemērs parāda, kā to var izdarīt.

db.Employee.dropIndex()

Koda skaidrojums:

  1. Metode dropIndexes nometīs visus indeksus, izņemot indeksu _id.

Ja komanda tiek veiksmīgi izpildīta, tiks parādīta šāda izeja:

Izeja:

  1. NIndexesWas: 2 norāda to lauku vērtību skaitu, kas pirms komandas palaišanas bija indeksos.
  2. Atcerieties vēlreiz, ka katrai kolekcijai ir lauks _id, kas arī tiek uzskatīta par indeksa lauka vērtību, un MongoDB to nenoņems, un to norāda šis ziņojums.
  3. Ok: 1 izvade norāda, ka darbība bija veiksmīga.

Kopsavilkums

  • Indeksu definēšana ir svarīga, lai ātrāk un efektīvāk meklētu dokumentus kolekcijā.
  • Indeksus var izveidot, izmantojot metodi createIndex. Indeksus var izveidot tikai vienā laukā vai vairākās lauku vērtībās.
  • Indeksus var atrast, izmantojot metodi getIndexes.
  • Indeksus var noņemt, izmantojot dropIndex atsevišķiem indeksiem vai dropIndexes visu indeksu nomešanai.