Ukuguqulelwa kwenqaku kwalungiselelwa kwangaphambi kokuqalisa kwekhosi
Amagqabantshintshi:
- Kubaluleke kakhulu ukuphuhlisa i-schema nangona ikhethwa kwi-MongoDB.
- Ngokunjalo, izalathisi kufuneka zihambelane neschema sakho kunye neepateni zokufikelela.
- Kuphephe ukusebenzisa izinto ezinkulu kunye noluhlu olukhulu.
- Lumka ngoseto lweMongoDB, ngakumbi xa kufikwa kukhuseleko kunye nokuthembeka.
- IMongoDB ayinaso isilungisi sokubuza, ke kufuneka ulumke xa usenza imisebenzi yokubuza.
Kudala ndisebenza ngogcino lwedatha, kodwa kutsha nje ndifumene iMongoDB. Kukho izinto ezimbalwa endinqwenela ukuba ndazi ngaphambi kokuba ndiqalise ukusebenza nazo. Xa umntu sele enamava kwinkalo ethile, baye bacingelwa kwangaphambili malunga nokuba zeziphi ii-database kunye nento abayenzayo. Ngethemba lokwenza kube lula kwabanye ukuqonda, ndibonisa uluhlu lweempazamo eziqhelekileyo.
Ukwenza iseva ye-MongoDB ngaphandle koqinisekiso
Ngelishwa, i-MongoDB ifakwe ngaphandle kokuqinisekiswa ngokungagqibekanga. Kwindawo yokusebenzela ekufikelelwa kuyo ekuhlaleni, oku kuqhelekile. Kodwa ekubeni i-MongoDB yinkqubo yabasebenzisi abaninzi ethanda ukusebenzisa inani elikhulu lememori, kuya kuba ngcono ukuba uyibeka kumncedisi kunye ne-RAM eninzi kangangoko kunokwenzeka, nokuba uya kuyisebenzisela uphuhliso kuphela. Ukufaka kumncedisi ngezibuko elingagqibekanga kunokuba yingxaki, ngakumbi ukuba nayiphi na ikhowudi yejavascript inokuphunyezwa kwisicelo (umzekelo, $where
njengombono we
Kukho iindlela ezininzi zokuqinisekisa, kodwa eyona ilula kukuseta i-ID/password yomsebenzisi. Sebenzisa olu luvo ngelixa ucinga malunga nongqinisiso olusekwe kwi
Ungalibali ukubophelela indawo yohlaselo kwiMongoDB
,
okanye
. Kuba iifayile zedatha azikhutshelwanga kwiMongoDB eqhelekileyo, iyavakala ukuqhuba iMongoDB nayo
Impazamo ngelixa uphuhlisa isekethe
I-MongoDB ayisebenzisi i-schema. Kodwa oku akuthethi ukuba inkqubo ayidingeki. Ukuba ufuna nje ukugcina amaxwebhu ngaphandle kwepatheni engaguqukiyo, ukuwagcina kunokukhawuleza kwaye kulula, kodwa ukuwabuyisela kamva kunokuba nzima.
Inqaku lakudala "
Ungalibali uhlobo lweodolo
Ukulibala ukuhlelwa kocwangco kunokubangela ukuphazamiseka okungaphezulu kwaye kuchithe ixesha elininzi kunalo naluphi na olunye ulungelelwaniso olungachanekanga. Ngokungagqibekanga iMongoBD isebenzisa
Yenza ingqokelela ngamaxwebhu amakhulu
I-MongoDB iyavuya ukubamba amaxwebhu amakhulu ukuya kuthi ga kwi-16MB kwiingqokelela, kunye
Ukudala amaxwebhu anemigangatho emikhulu
Amaxwebhu anokuqulatha uluhlu. Kungcono ukuba inani lee-elementi kuluhlu likude kwinani elinamanani amane. Ukuba iziqalelo zongezwa kuluhlu rhoqo, izakukhuba ngaphandle koxwebhu oluyiqulathileyo kwaye kuyakufuneka ibe njalo
I-MongoDB inento ebizwa ngokuba yi
Unokucinga ukuba ungenza ngaphandle koluhlu lwesalathiso. Ngelishwa, ukunqongophala kwezalathisi kunokubangela ukuba ube nezinye iingxaki. Kuba amaxwebhu askeniwe ukusuka ekuqaleni ukuya ekugqibeleni, ukukhangela imiba ekupheleni koluhlu kuyakuthatha ixesha elide, kwaye uninzi lwemisebenzi eyayanyaniswa noxwebhu olunjalo iya kuba
Musa ukulibala ukuba ulandelelwano lwezigaba kwi-aggregation ibalulekile
Kwinkqubo yogcino-lwazi ene-query optimizer, imibuzo oyibhalayo ziingcaciso zento ofuna ukuyifumana, hayi indlela yokuyifumana. Lo matshini usebenza ngokufaniswa nokuodola kwindawo yokutyela: uhlala u-odola isitya, kwaye unganikeli miyalelo ineenkcukacha kumpheki.
KwiMongoDB, uyala umpheki. Umzekelo, kufuneka uqinisekise ukuba idatha iyadlula reduce
kwangoko kangangoko kunokwenzeka kwimibhobho usebenzisa $match
ΠΈ $project
, kwaye ukuhlelwa kwenzeka kuphela emva koko reduce
, kwaye uphendlo lwenzeka kanye ngendlela oyifunayo. Ukuba nesixhobo sokulungisa imibuzo esisusa umsebenzi ongeyomfuneko, ulandelelwano lwamanyathelo ngokufanelekileyo, kwaye ukhethe iintlobo zokujoyina kunokukonakalisa. NgeMongoDB, unolawulo oluthe kratya kwiindleko zoncedo.
Izixhobo ezifana
Ukusebenzisa ukuRekhoda ngokukhawuleza
Ungaze usete iinketho zokubhala zeMongoDB ukuba ube nesantya esiphezulu kodwa ukuthembeka okuphantsi. Le mowudi "ifayile kwaye ulibale" ibonakala ikhawuleza kuba umyalelo ubuyiselwa phambi kokuba kubhalwe. Ukuba inkqubo iphahlazeka ngaphambi kokuba idatha ibhalwe kwidisk, iya kulahleka kwaye iphele kwisimo esingahambelaniyo. Ngethamsanqa, i-64-bit ye-MongoDB ivuleleke.
I-MMAPv1 kunye neenjini zokugcina ze-WiredTiger zisebenzisa ukugawulwa kwemithi ukukhusela oku, nangona i-WiredTiger inokubuyisela ekugqibeleni
Ukubhalwa kwengxelo kuqinisekisa ukuba i-database ikwimeko ehambelanayo emva kokubuyisela kwaye igcina yonke idatha ide ibhalwe kwilogi. Ubuninzi bokurekhoda buqwalaselwe kusetyenziswa iparameter
.
Ukuqinisekisa ngongeniso, qiniseka ukuba ukuloga kuvuliwe kwifayile yoqwalaselo
, kunye nezihlandlo zokurekhoda zihambelana nesixa solwazi onokuthi ukwazi ukuphulukana nalo.
Ukuhlela ngaphandle kwesalathiso
Xa kukhangelwa kwaye kuhlanganiswe, kuhlala kukho imfuneko yokuhlela idatha. Masithembe ukuba oku kwenziwa kwelinye lamanqanaba okugqibela, emva kokucoca isiphumo ukuze kuncitshiswe inani ledatha ehlelwayo. Kwaye nakulo mzekelo, ukuze uhlele uya kufuna
Ukuba akukho salathiso sifanelekileyo, iMongoDB iya kwenza ngaphandle kwayo. Kukho umda wememori we-32 MB kubungakanani bubonke bawo onke amaxwebhu aku
Khangela ngaphandle kwenkxaso yesalathisi
Imibuzo yokukhangela yenza umsebenzi ofana ne-JOIN kwi-SQL. Ukuze basebenze kakuhle, badinga isalathisi sexabiso lesitshixo esisetyenziswe njengeqhosha langaphandle. Oku akubonakali kuba ukusetyenziswa akubonakali explain()
. Ezo zalathi zongezelelwe kwisalathiso esibhaliweyo explain()
, leyo yona isetyenziswa ngabaqhubi bemibhobho $match
ΠΈ $sort
, xa bedibana ekuqaleni kombhobho. Izalathisi ngoku zinokugubungela naliphi na inqanaba
Ukuphuma ekusebenziseni uhlaziyo oluninzi
Indlela
isetyenziselwa ukutshintsha indawo yoxwebhu olukhoyo okanye uxwebhu lonke, ukuya kutshintsho olupheleleyo, kuxhomekeke kwiparameter oyikhankanyayo
. Into engacacanga kangako kukuba ayizukuqhubekeka onke amaxwebhu kwingqokelela ngaphandle kokuba usete ukhetho
ukuhlaziya onke amaxwebhu ahlangabezana nemigaqo yesicelo.
Musa ukulibala ukubaluleka komyalelo wezitshixo kwitafile ye-hash
Kwi-JSON, into iqulathe ingqokelela engacwangciswanga yobungakanani bero okanye ngaphezulu igama/ixabiso lezibini, apho igama lingumtya kwaye ixabiso lingumtya, inani, boolean, null, into, okanye uluhlu.
Ngelishwa, i-BSON ibeka ugxininiso oluninzi kwi-odolo xa ukhangela. Kwi-MongoDB, ukulandelelana kwezitshixo ngaphakathi kwezinto ezakhelwe ngaphakathi { firstname: "Phil", surname: "factor" }
- oku akufani { { surname: "factor", firstname: "Phil" }
. Oko kukuthi, kufuneka ugcine ulandelelwano lwamagama/ixabiso lezibini kumaxwebhu akho ukuba ufuna ukuqiniseka ngokuwafumana.
Musa ukubhideka "Null" ΠΈ "engachazwanga"
Nentsingiselo "engachazwanga" ayizange isebenze e-JSON, ngokutsho $null
, engasoloko isisisombululo esihle.
Sebenzisa $limit()
ngaphandle $sort()
Rhoqo xa uphuhlisa kwi-MongoDB, kuluncedo ukubona nje isampulu yesiphumo esiya kubuyiswa kumbuzo okanye udityaniso. Kulo msebenzi uya kuwufuna $limit()
, kodwa akufunekanga ibe kwikhowudi yokugqibela ngaphandle kokuba uyisebenzise ngaphambili $sort
. Lo matshini uyimfuneko kuba kungenjalo awukwazi ukuqinisekisa ukulandelelana kwesiphumo, kwaye awuyi kukwazi ukujonga ngokuthembekileyo idatha. Phezulu kwesiphumo uya kufumana amangeno ahlukeneyo ngokuxhomekeke ekuhleleni. Ukusebenza ngokuthembekileyo, imibuzo kunye nokudityaniswa kufuneka kumiselwe, oko kukuthi, kuvelise iziphumo ezifanayo ngalo lonke ixesha zisenziwa. Ikhowudi equlathe $limit()
, kodwa hayi $sort
, ayiyi kuba yi-deterministic kwaye inokubangela iimpazamo ekuya kuba nzima ukuzilandelela.
isiphelo
Indlela yodwa yokuphoxeka nge-MongoDB kukuthelekisa ngokuthe ngqo nolunye uhlobo lwedatha, njenge-DBMS, okanye ukuza kuyisebenzisa ngokusekelwe kwizinto ezilindelekileyo. Kufana nokuthelekisa iorenji nefolokhwe. Iinkqubo zedathabheyisi zisebenzela iinjongo ezithile. Kungcono ukuba uqonde kwaye uqonde lo mahluko ngokwakho. Kuya kuba lihlazo ukucinezela abaphuhlisi be-MongoDB phezu kwendlela eyabanyanzelela phantsi kwendlela ye-DBMS. Ndifuna ukubona iindlela ezintsha nezinomdla zokusombulula iingxaki ezindala, ezinjengokuqinisekisa ukuthembeka kwedatha kunye nokudala iinkqubo zedatha ezikwaziyo ukumelana nokungaphumeleli kunye nokuhlaselwa okukhohlakeleyo.
Intshayelelo ye-MongoDB ye-ACID transactionality kwinguqulelo 4.0 ngumzekelo omhle wokwazisa uphuculo olubalulekileyo ngendlela entsha. Amaxwebhu amaninzi kunye neentengiselwano ezininzi ngoku zi-atomic. Kwakhona kunokwenzeka ukulungelelanisa ixesha elifunekayo lokufumana izitshixo kunye nokuphelisa ukuthengiselana okuxinyiweyo, kunye nokutshintsha inqanaba lokuzihlukanisa.
Funda ngokugqithisileyo:
umthombo: www.habr.com