MongoDB index
Indexek nélkül a MongoDB-nek minden fájlt át kell szkennelnie a gyűjteményben, és kiválasztania azokat a rekordokat, amelyek megfelelnek a lekérdezési kritériumoknak, amikor adatokat olvas.
Ez a teljes halmaz lekérdezési hatékonysága nagyon alacsony, különösen nagy mennyiségű adat feldolgozása esetén, a lekérdezés akár több tíz másodpercet vagy akár perceket is igénybe vehet, ami nagyon végzetes a weboldal teljesítményére.
Az indexek speciális adatstruktúrák, amelyeket egy adatgyűjteményben tárolnak, és könnyen olvashatók egy indexen, az indexek pedig olyan struktúrák, amelyek egy vagy több oszlop értékeit rendezik az adatbázis táblájában.
Szemle:
Lekérdezés a végrehajtási terv
Példa állítások:
Indexet (winningPlan:COLLSCAN) létrehozás nélkül, ahogy az alábbi ábrán látható:
Az explain() függvény különböző paramétereket is kaphat, és részletesebb lekérdezési tervet is megtekinthetsz különböző paraméterek beállításával.
A paraméterek a következők:queryPlanner (alapértelmezett)、executionStats、allPlansExecution
Execute explain("executionStats"), és látni fogod, hogy több statisztika van a végrehajtási tervben.
| paraméter | jelentés | | totalKeysExamined | Indexvizsgálatok száma | | totalDocsExamined | Dokumentumszkennelések száma | | nVisszatért | A visszahozott eredmények száma | | executionTimeMillis | A végrehajtás időigényes | | kivégzésSiker | Sikeres volt-e a kivégzés |
Hozz létre egy indexet
A MongoDB a createIndex() módszert használja indexek létrehozásához.
Megjegyzendő, hogy a 3.0.0 verzió előtt az index létrehozási módszer db.collection.ensureIndex() volt, a későbbi verziók pedig a db.collection.createIndex() módszert használták.
Hozzon létre egyetlen indexet
Hozzon létre egy összetett indexet
A szintaxisban a kulcsérték az a indexmező, amit létrehozni szeretnél, az 1 az indexet növekvő sorrendben létrehozni, és ha csökkenő sorrendben akarsz indexet létrehozni, megadhatod -1-et.háttér annak meghatározására, hogy indexek a háttérben készülnek létre, vagyis hozzáadni a "background" opcionális paramétert. "background" alapértelmezés szerint hamis.
Lekérdezési indexek
A parancs a következő:
Töröld az indexet
Minden indexet törölj
Töröld a megadott indexet
(Vége)
|