MongoDB ainulaadseid piiranguid rakendatakse ainulaadsete indekside kaudu, mis tagavad, et kahel kollektsiooni dokumendil pole indekseeritud välja või väljade jaoks sama väärtus. See on andmete terviklikkuse säilitamiseks ülioluline, eriti kui sellised väljad nagu e -posti aadressid, tootesuusad või tehingu ID -d peavad olema ainulaadsed. Ainulaadne piirang toimib väravavahina, takistades duplikaatsete kirjete sisestamist andmebaasi.
Etenduse seisukohast on ainulaadsetel piirangutel mitu mõju. Positiivse poole pealt saavad nad päringu jõudlust märkimisväärselt parandada, võimendades indekseid kiirete otsingute jaoks. Indekseeritud väljad, sealhulgas ainulaadsete piirangute all olevad väljad, võimaldavad MongoDB-l vältida täielikke kogumise skaneeringuid, otsides dokumente tõhusalt, kasutades B-puu andmestruktuuri. See indekseerimine suurendab jõudlust märkimisväärselt, eriti päringute puhul, mis hõlmavad ainulaadset indekseeritud välja, näiteks kasutaja leidmine e -posti teel või SKU toote kaupa.
Ainulaadsed piirangud tutvustavad aga kirjutamisoperatsioonide üldkulusid. Sisestamise, värskenduste või kustutamise ajal peab MongoDB enne toimingu lõpetamist kontrollima indekseeritud väärtuse ainulaadsust. See lisab töötlemisaega, kuna andmebaasimootor peab säilitama indeksistruktuure ja tagama, et ükski duplikaat ei rikuks piirangut. Järelikult võib kirjutada jõudlus, eriti sisestamine ja värskendus kiirused, võrreldes mitteindekseerimata väljadel või põldudel ilma ainulaadsuse piiranguteta. Üldkulusid saab rohkem väljendada kollektsioonides, millel on kõrge kirjutamisvõime või unikaalse indekseeritud väljade sagedased värskendused.
Lisaks otsesele jõudluse mõjule on ka laiemad salvestus- ja halduskaalutlused. Indeksid tarbivad täiendavat kettaruumi ja mälu, nii et ainulaadsed indeksid suurendavad andmebaasi salvestusnõudeid. Lisaks võivad suured või keerulised ainulaadsed indeksid, näiteks mitu välja hõlmavad (ühendi ainulaadsed indeksid), vajada hoolduse ja päringu töötlemiseks rohkem mälu ja protsessori ressursse. Kui indeksid on suured ja neid ei saa mällu täielikult laadida, võib see põhjustada lugemisoperatsioonide võimalikke latentsusi.
MongoDB käitumine indeksi loomise ajal on olemasolevatele kollektsioonidele ainulaadsete piirangute ehitamisel või lisamisel. Kollektsiooni kirjutamine võib olla blokeeritud või tuleb oodata, kuni ainulaadne indeksi ehitamine lõpeb, et vältida andmete ebajärjekindlust. Kõik dokumendid, mis rikuvad ainulaadsuse reeglit, tuleb lahendada enne indeksi loomise õnnestumist. Kui indeksi loomise ajal on duplikaadid olemas, ebaõnnestub indeksi ehitamise toiming. See blokeeriv karakteristik tähendab, et indeksi loomisel võib olla operatiivset mõju kirjutamisvõimalusele hooldusakende ajal.
Päringu osas ei ole olulisi erinevusi päringute kiiruses, mis kasutavad ainulaadseid indekseid ja mitte-unikaalseid indekseid, kui andmejaotused ja indeksistruktuurid on sarnased. Ainulaadsed indeksid ei kiirenda oma olemuselt lugemispäringuid väljaspool mis tahes indeksi kiirendust, kuna nii ainulaadsed kui ka mitte-unikaalsed indeksid MongoDB-s kasutavad B-puu struktuure. Võtmetegur on endiselt indeksi olemasolu, mis vähendab päringu latentsusaega, vältides täieliku kogumise skaneerimist.
Täiendavate kaalutluste hulka kuulub ülemäärase indekseerimise ja ebavajalike ainulaadsete piirangute vältimine. Ainulaadsete piirangute rakendamine väljadel, mis ei nõua ainulaadsust, võib vähendada paindlikkust ja kehtestada üldkulud ilma tähenduslike eelisteta. Nõuetekohane skeemi kujundamine peaks hõlmama ainult ainulaadsete piirangute lisamist, kui semantiliselt on vaja ainulaadsust, näiteks erinevaid identiteete või tehingute identifikaatoreid esindavaid võtmeid. Ülekasutus võib halvendada süsteemi üldist jõudlust ja raskendada andmehaldust.
Rakenduse tasandil pakuvad MongoDB poolt jõustatud ainulaadsed piirangud vastupidavust, vähendades enne sisestamist või värskendusi käsitsi dubleerimise kontrollimise vajadust, mis võib lihtsustada rakenduse loogikat ja vähendada tõrkeohtlikke tingimusi. Kuid kompromiss on kirjutamisoperatsioonide latentsus pisut suurenenud.
Kokkuvõtlikult võib MongoDB -s ainulaadsete piirangute kasutamise jõudluse mõju kokku võtta järgmiselt:
- Ainulaadsed piirangud parandavad lugemispäringu jõudlust, võimendades indekseid dokumentide kiireks leidmiseks, vältides kogumise skaneeringuid.
- Nad lisavad sisendite ja värskenduste kirjutamise pealiskuse, kuna andmebaas peab enne toimingute lõpetamist tagama ainulaadsuse.
- Ainulaadsed indeksid suurendavad salvestus- ja mälu kasutamist, ühendi või suured ainulaadsed indeksid mõjutavad süsteemiressursse.
- Indeksi loomine ainulaadsuse jõustamiseks võib blokeerida kirjutisi kuni valmimiseni, mõjutades hoolduse ajal saadavust.
- Ainulaadsete ja mitte-Unikaalsete indekside vahel pole lugemis kiiruses märkimisväärset erinevust päringu tõhusust võrreldes indeksiga võrreldes.
- Ainulaadsete piirangute nõuetekohane kasutamine aitab kaasa andmete terviklikkusele ja vähendab rakenduste keerukust, käsitledes dubleerimise kontrolli andmebaasi tasandil.
- Ainulaadsete piirangute ülekasutamine või sobimatu kasutamine võib mõjutada jõudlust ja paindlikkust negatiivselt, seetõttu tuleks neid hoolikalt rakendada.