Lintho tse 14 tseo ke lakatsang eka nka li tseba pele ke qala ka MongoDB

Phetolelo ea sengoloa e lokisitsoe bosiung ba pele thupelo e qala "Li-database tse sa amaneng".

Lintho tse 14 tseo ke lakatsang eka nka li tseba pele ke qala ka MongoDB

Lintlha-kholo:

  • Ho bohlokoa haholo ho theha schema leha e le khetho ho MongoDB.
  • Ka mokhoa o ts'oanang, li-index li tlameha ho tsamaisana le schema ea hau le mekhoa ea phihlello.
  • Qoba ho sebelisa lintho tse kholo le lihlopha tse kholo.
  • E-ba hlokolosi ka litlhophiso tsa MongoDB, haholo-holo ha ho tluoa tabeng ea ts'ireletso le botšepehi.
  • MongoDB ha e na optimizer ea lipotso, kahoo o tlameha ho ba hlokolosi ha o etsa ts'ebetso ea lipotso.

Ke qetile nako e telele ke sebetsa le li-database, empa ke sa tsoa sibolla MongoDB. Ho na le lintho tse 'maloa tseo ke lakatsang eka nka li tseba pele ke qala ho sebetsa le eona. Ha motho a se a ntse a e-na le boiphihlelo lefapheng le itseng, ba na le maikutlo a pele mabapi le hore na li-database ke eng le hore na ba etsa eng. Ka tšepo ea ho nolofalletsa ba bang ho utloisisa, ke fana ka lethathamo la liphoso tse tloaelehileng.

Ho theha seva sa MongoDB ntle le netefatso

Ka bomalimabe, MongoDB e kentsoe ntle le netefatso ka boiketsetso. Bakeng sa sebaka sa mosebetsi se fumanehang sebakeng sa heno, mokhoa ona o tloaelehile. Empa kaha MongoDB ke sistimi e sebelisang basebelisi ba bangata e ratang ho sebelisa mohopolo o mongata, ho tla ba molemo ha o ka e beha ho seva e nang le RAM e ngata kamoo ho ka khonehang, leha o tla e sebelisa molemong oa nts'etsopele. Ho kenya ho seva ka boema-kepe ba kamehla ho ka ba bothata, haholo haeba khoutu efe kapa efe ea javascript e ka etsoa kopo (mohlala, $where joalo ka mohopolo oa liente).

Ho na le mekhoa e mengata ea netefatso, empa e bonolo ka ho fetesisa ke ho seta ID/password ea mosebelisi. Sebelisa mohopolo ona ha o ntse o nahana ka netefatso e majabajaba e thehiloeng ho LDAP. Ha ho tluoa tabeng ea ts'ireletso, MongoDB e lokela ho lula e nchafatsoa, ​​​​'me li-log li lokela ho hlahlojoa kamehla bakeng sa ho fihlella ho sa lumelloeng. Mohlala, ke rata ho khetha boema-kepe bo fapaneng joalo ka boema-kepe ba kamehla.

Se ke oa lebala ho tlama sebaka sa tlhaselo ho MongoDB

Lethathamo la Ts'ireletso la MongoDB e na le malebela a matle a ho fokotsa kotsi ea ho kena marang-rang le ho lutla ha data. Ho bonolo ho e hlakola le ho re seva sa nts'etsopele ha se hloke boemo bo phahameng ba ts'ireletso. Leha ho le joalo, ha ho bonolo ebile sena se sebetsa ho li-server tsohle tsa MongoDB. Haholo-holo, haeba ho se na lebaka le utloahalang la ho sebelisa mapReduce, group kapa $ kae, o hloka ho tima ts'ebeliso ea khoutu e ikemetseng ho JavaScript ka ho ngola faeleng ea tlhophiso. javascriptEnabled:false. Kaha lifaele tsa data ha lia ngolisoa ho MongoDB e tloaelehileng, hoa utloahala ho tsamaisa MongoDB ka Mosebelisi ea inehetseng, e nang le phihlello e felletseng ea lifaele, e nang le phihlello e fokolang ho eona feela le bokhoni ba ho sebelisa taolo ea phihlello ea faele ea sistimi ea ts'ebetso.

Phoso ha ho ntse ho etsoa potoloho

MongoDB ha e sebelise schema. Empa sena ha se bolele hore morero ha o hlokehe. Haeba u batla feela ho boloka litokomane ntle le mokhoa leha e le ofe o tsitsitseng, ho li boloka ho ka ba kapele le ho bonolo, empa ho li fumana hamorao ho ka ba thata. ka thata haholo.

Sengoloa sa khale "Melao e 6 ea Thumb bakeng sa Moralo oa MongoDB Schema" E loketse ho baloa, le likarolo tse joalo Schema Explorer ho sesebelisoa sa mokha oa boraro Studio 3T, ho loketse ho sebelisoa bakeng sa licheke tsa kamehla tsa lipotoloho.

U se ke ua lebala ho hlophisa

Ho lebala ho hlophisa ho ka baka pherekano le ho senya nako ho feta tlhophiso efe kapa efe e fosahetseng. Ka mokhoa o ikhethileng, MongoBD e sebelisa mofuta oa binary. Empa ho ke ke ha etsahala hore e be molemo ho mang kapa mang. Mefuta e sa utloahaleng, e sa utloeleng molumo oa lentsoe, e ne e nkoa e le li-anachronism tse makatsang hammoho le lifaha, li-caftan le li-mustache tse harelaneng morao koana lilemong tsa bo-80 tsa lekholo le fetileng. Hona joale tšebeliso ea bona e ke ke ea tšoareloa. Bophelong ba 'nete, "sethuthuthu" se tšoana le "Sethuthuthu". 'Me "Brithani" le "Brithani" ke sebaka se le seng. Tlhaku e nyane ke feela litlhaku tse kholo tse lekanang le tlhaku e kholo. 'Me u se ke ua etsa hore ke qale ka ho hlopha mantsoe. Ha u theha polokelo ea lintho ho MongoDB, sebelisa ho kopanya ho sa utloahaleng le ho ngodisa, tse tsamaellanang le puo le setso sa basebelisi ba sistimi. Sena se tla etsa hore ho batlisisa ka likhoele ho be bonolo haholo.

Etsa likoleke ka litokomane tse kholo

MongoDB e thabela ho amohela litokomane tse kholo ho fihla ho 16MB ka pokello, le GridFS E etselitsoe litokomane tse kholo ho feta 16 MB. Empa feela hobane litokomane tse kholo li ka beoa moo, ho li boloka ha se mohopolo o motle. MongoDB e tla sebetsa hantle ha o boloka litokomane tsa motho ka mong tse boholo ba li-kilobyte tse 'maloa, o li tšoara joalo ka mela e tafoleng e pharaletseng ea SQL. Litokomane tse kholo e tla ba mohloli oa mathata le tlhahiso.

Ho theha litokomane tse nang le lihlopha tse kholo

Litokomane li ka ba le lihlopha. Ho molemo haholo haeba palo ea likarolo ka har'a sehlopha e hole le palo ea linomoro tse 'ne. Haeba likarolo li eketsoa ho sehlopha khafetsa, se tla feta tokomane e nang le eona mme e tla hloka ho ba joalo tsamaya, ho bolelang hore ho tla hlokahala ntlafatsa li-index hape. Ha u supa tokomane e nang le lethathamo le leholo, hangata li-index li tla ngoloa, kaha ho na le rekoto, e bolokang index ea eona. Sena se boetse se etsahala ha tokomane e kentsoe kapa e hlakotsoe.

MongoDB e na le ntho e bitsoang "fill factor", e fanang ka sebaka sa hore litokomane li hōle ho fokotsa bothata bona.
U ka 'na ua nahana hore u ka etsa ntle le array indexing. Ka bomalimabe, khaello ea li-index e ka ’na ea etsa hore u be le mathata a mang. Kaha litokomane li hlahlojoa ho tloha qalong ho fihlela qetellong, ho batla likarolo qetellong ea lethathamo ho tla nka nako e teletsana, 'me boholo ba mesebetsi e amanang le tokomane e joalo e tla ba teng. butle.

U se ke ua lebala hore tatellano ea mekhahlelo ka kakaretso e bohlokoa

Sistimi ea database e nang le optimizer ea lipotso, lipotso tseo u li ngolang ke litlhaloso tsa seo u batlang ho se fumana, eseng mokhoa oa ho se fumana. Mochine ona o sebetsa ka papiso le ho odara reschorenteng: hangata o laela sejana feela, 'me ha o fane ka litaelo tse qaqileng ho moapehi.

Ho MongoDB, u laela moapehi. Ka mohlala, u lokela ho etsa bonnete ba hore data e feta reduce kapele kamoo ho ka khonehang ka phaepheng e sebelisang $match и $project, 'me ho hlopha ho etsahala feela ka mor'a reduce, le hore patlisiso e etsahala ka tatellano eo u e batlang. Ho ba le optimizer ea lipotso e felisang mosebetsi o sa hlokahaleng, ho hlophisa mehato hantle, le ho khetha mefuta ea ho kopanya ho ka u senya. Ka MongoDB, o na le taolo e eketsehileng ka litšenyehelo tsa boiketlo.

Lisebelisoa tse kang Studio 3T tla nolofatsa kaho ea aggregation lipotso ka MongoDB. Karolo ea Aggregation Editor e u lumella ho sebelisa polelo ea liphaephe mohato o le mong ka nako, 'me u hlahlobe lintlha tsa ho kenya le tse hlahisoang mothating o mong le o mong ho nolofatsa bothata.

Ho Sebelisa Ho Rekota ka Potlako

Le ka mohla u se ke ua beha likhetho tsa ho ngola tsa MongoDB ho ba le lebelo le phahameng empa ho ts'epahala ho tlase. Mokhoa ona "faele-le-lebala" e shebahala e potlakile hobane taelo e khutlisoa pele ho ngola ho etsahala. Haeba tsamaiso e senyeha pele data e ngolloa disk, e tla lahleha 'me e qetelle e le boemong bo sa tsitsang. Ka lehlohonolo, 64-bit MongoDB e nolofalitsoe ho rengoa ha lifate.

Lienjineri tsa polokelo tsa MMAPv1 le WiredTiger li sebelisa ho rema lifate ho thibela sena, leha WiredTiger e ka hlaphoheloa ho fihlela e sa fetohe. ntlha ya taolo, haeba ho rema lifate ho koetsoe.

Ho ngola litaba ho netefatsa hore database e maemong a ts'oanang ka mor'a hore e hlaphoheloe 'me e boloka data eohle ho fihlela e ngoloa ho log. Khafetsa ea lirekoto e lokisoa ho sebelisoa parameter commitIntervalMs.

E le ho netefatsa likenyo, etsa bonnete ba hore ho rema lifate ho nolofalitsoe faeleng ea tlhophiso (storage.journal.enabled), 'me makhetlo a mangata a rekotiloeng a lumellana le bongata ba boitsebiso boo u ka khonang ho bo lahleheloa ke bona.

Ho hlopha ntle le index

Ha ho batloa le ho kopanya, hangata ho na le tlhoko ea ho hlophisa data. Ha re tšepe hore sena se etsoa ho e 'ngoe ea mekhahlelo ea ho qetela, ka mor'a ho sefa sephetho e le ho fokotsa palo ea data e hlophisoang. 'Me esita le tabeng ena, bakeng sa ho hlopha o tla hloka index. U ka sebelisa index e le 'ngoe kapa e kopaneng.

Haeba ho se na index e loketseng, MongoDB e tla etsa ntle le eona. Ho na le moeli oa memori oa 32 MB ka boholo ba litokomane tsohle tse ho mesebetsi ea ho hlopha, 'me haeba MongoDB e fihla moeling ona, joale e tla lahlela phoso kapa ea khutla sekhete sa rekoto.

Batla ntle le tšehetso ea index

Lipotso tsa ho batla li etsa mosebetsi o ts'oanang le ts'ebetso ea JOIN ho SQL. Ho sebetsa hantle, ba hloka index ea boleng ba senotlolo se sebelisoang e le senotlolo sa kantle ho naha. Sena ha se totobetse hobane tšebeliso ha e bonahale ho explain(). Li-indices tse joalo ke tlatsetso ho index e ngotsoeng ka explain(), eo le eona e sebelisoang ke basebetsi ba lipeipi $match и $sort, ha li kopana qalong ea phaephe. Hona joale li- index li ka akaretsa sethaleng leha e le sefe phaephe ea ho kopanya.

Ho khetha ho tsoa ho sebelisa liapdeite tse ngata

Mokhoa db.collection.update() e sebelisetsoang ho fetola karolo ea tokomane e teng kapa tokomane eohle, ho fihlela phetoho e felletseng, ho latela paramethara eo u e boletseng update. Ntho e sa totobalang ke hore e ke ke ea sebetsana le litokomane tsohle tse pokellong ntle le haeba o khetha khetho multi ho ntjhafatsa ditokomane tsohle tse fihlelang maemo a kopo.

U se ke ua lebala bohlokoa ba tatellano ea linotlolo tafoleng ea hash

Ho JSON, ntho e na le pokello e sa hlophisoang ea boholo ba zero kapa lipara tse ngata tsa lebitso/boleng, moo lebitso e leng thapo 'me boleng e le khoele, nomoro, boolean, null, object, kapa sehlopha.

Ka bomalimabe, BSON e hatisa haholo tatellano ha e batla. Ho MongoDB, tatellano ea linotlolo ka har'a lintho tse hahelletsoeng ditaba, e.g. { firstname: "Phil", surname: "factor" } - sena ha se tšoane le { { surname: "factor", firstname: "Phil" }. Ke hore, o tlameha ho boloka tatellano ea lipara tsa mabitso / boleng litokomaneng tsa hau haeba u batla ho etsa bonnete ba hore u li fumane.

U se ke ua ferekana "Null" и "e sa hlalosoang"

boleng "e sa hlalosoang" ha ho mohla e kileng ea sebetsa ho JSON, ho latela maemo a semmuso JSON (ECMA-404 Karolo ea 5), ​​leha e sebelisoa ho JavaScript. Ho feta moo, bakeng sa BSON ha e sa sebetsa 'me e fetoloa ho $null, eo hase kamehla e leng tharollo e molemo. Qoba ho sebelisa "e sa hlalosoang" ho MongoDB.

Sebelisa $limit() ntle le $sort()

Hangata ha o ntse o tsoela pele ho MongoDB, ho molemo ho bona sampole ea sephetho se tla khutlisoa ho tsoa potsong kapa pokellong. Bakeng sa mosebetsi ona o tla o hloka $limit(), empa ha ea lokela ho ba khoutu ea ho qetela ntle le haeba u e sebelisa pele $sort. Mechini ena ea hlokahala hobane ho seng joalo u ke ke ua tiisa tatellano ea sephetho, 'me u ke ke ua khona ho bona data ka ts'epahalo. Ka holimo ho sephetho u tla fumana likhakanyo tse fapaneng ho latela ho hlopha. Ho sebetsa ka ts'epo, lipotso le likopano li tlameha ho ba tse ikemiselitseng, ke hore, li hlahise litholoana tse tšoanang nako le nako ha li etsoa. Khoutu e nang le $limit(), empa che $sort, e ke ke ea ba ea deterministic 'me ka mor'a moo e ka baka liphoso tse tla ba thata ho li fumana.

fihlela qeto e

Mokhoa o le mong feela oa ho soetseha le MongoDB ke ho e bapisa ka kotloloho le mofuta o mong oa database, joalo ka DBMS, kapa ho tla ho e sebelisa ho latela litebello tse itseng. Ho tšoana le ho bapisa lamunu le fereko. Litsamaiso tsa database li sebeletsa merero e itseng. Ho molemo ho utloisisa le ho ananela liphapang tsena ka bouena. E ka ba lihlong ho hatella baetsi ba MongoDB holim'a tsela e ba qobelletseng ho theosa tsela ea DBMS. Ke batla ho bona litsela tse ncha le tse thahasellisang tsa ho rarolla mathata a khale, a kang ho netefatsa botšepehi ba data le ho theha lisebelisoa tsa data tse khonang ho hloleha le litlhaselo tse lonya.

Kenyelletso ea MongoDB ea transactionality ea ACID ho mofuta oa 4.0 ke mohlala o motle oa ho hlahisa lintlafatso tsa bohlokoa ka tsela e ncha. Litšebelisano tsa litokomane tse ngata le litlaleho tse ngata li se li le atomic. Hape hoa khonahala ho fetola nako e hlokahalang ho fumana liloko le ho emisa litšebelisano tse khomaretsoeng, hammoho le ho fetola boemo ba ho itšehla thajana.

Lintho tse 14 tseo ke lakatsang eka nka li tseba pele ke qala ka MongoDB

Bala haholoanyane:

Source: www.habr.com

Eketsa ka tlhaloso