14 mea maimau pe ana ou iloa ae leʻi amataina MongoDB

O le faaliliuga o le tusiga na saunia i le afiafi o le amataga o le vasega "Fa'amaumauga e le o feso'ota'iga".

14 mea maimau pe ana ou iloa ae leʻi amataina MongoDB

Manatu taua:

  • E matua taua tele le atiaʻe o se faʻataʻitaʻiga e ui lava e filifili ile MongoDB.
  • E fa'apea fo'i, e tatau ona fetaui fa'asino i lau fa'asologa ma fa'asologa avanoa.
  • Aloese mai le faʻaaogaina o mea tetele ma faʻasologa tetele.
  • Faʻaeteete i faʻatulagaga MongoDB, aemaise lava pe a oʻo mai i le saogalemu ma le faʻamaoni.
  • MongoDB e leai se su'esu'ega optimizer, o lea e tatau ai ona e fa'aeteete pe a fa'atino galuega fa'atatau.

Ua leva ona ou galue ma faʻamaumauga, ae naʻo le taimi nei na maua ai MongoDB. E i ai nai mea ou te moomoo maimau pe ana ou iloa ae ou te lei amata galue i ai. Afai ua iai le poto masani o se tagata i se matata faapitoa, e iai a latou manatu muamua e uiga i database ma mea latou te faia. I le faʻamoemoe o le faʻafaigofieina o isi ona malamalama, ou te tuʻuina atu se lisi o mea sese masani.

Fausia se server MongoDB e aunoa ma se faʻamaoniga

Ae paga lea, ua faʻapipiʻi MongoDB e aunoa ma se faʻamaoniga e ala i le faaletonu. Mo se fale faigaluega e maua i le lotoifale, o lenei faiga masani. Ae talu ai o le MongoDB o se faiga faʻaoga tele e fiafia e faʻaaoga le tele o manatuaga, o le a sili atu pe afai e te tuʻuina i luga o se server ma le tele o le RAM e mafai ai, e tusa lava pe naʻo le faʻaaogaina mo le atinaʻe. O le faʻapipiʻiina i luga o le 'auʻaunaga e ala i le faʻaogaina o le taulaga e mafai ona faʻafitauli, aemaise lava pe a mafai ona faʻatinoina se code javascript i le talosaga (mo se faʻataʻitaʻiga, $where e fai ma manatu mo tui).

E tele auala fa'amaonia, ae sili ona faigofie o le setiina o se ID fa'aoga / upu fa'aoga. Fa'aaoga lenei manatu a'o e mafaufau e uiga i fa'amaoniga fa'apitoa e fa'avae i luga LDAP. A oʻo mai i le saogalemu, MongoDB e tatau ona faʻafouina i taimi uma, ma ogalaau e tatau ona siaki i taimi uma mo avanoa e le faʻatagaina. Mo se faʻataʻitaʻiga, ou te manaʻo e filifili se isi uafu e fai ma tau faʻaletonu.

Aua nei galo e fusifusia le osofaʻiga i MongoDB

MongoDB Security Checklist o loʻo i ai fautuaga lelei mo le faʻaitiitia o le lamatiaga o fesoʻotaʻiga fesoʻotaʻiga ma faʻamatalaga leaka. E faigofie ona fufulu ese ma fai mai e le manaʻomia e le server development se tulaga maualuga o le saogalemu. Ae ui i lea, e le faigofie ma e faʻatatau i MongoDB servers uma. Aemaise lava, pe afai e leai se mafuaaga faʻamalosi e faʻaaoga ai mapReduce, group poʻo $o fea, e te manaʻomia e faʻamalo le faʻaogaina o le tulafono faʻamaonia i le JavaScript e ala i le tusitusi i le faila faila javascriptEnabled:false. Talu ai o faila faʻamaumauga e le o faʻailogaina i MongoDB masani, e talafeagai le taʻavale MongoDB ma Tagata fa'apitoa, o lo'o i ai le avanoa atoatoa i faila, fa'atasi ai ma le fa'atapula'aina o le avanoa i ai ma le mafai ona fa'aogaina le fa'aogaina o le fa'aogaina o faila faila.

Sese a'o atia'e le matagaluega

MongoDB e le fa'aogaina se fuafuaga. Ae e le faapea e le manaomia le polokalame. Afai e na'o lou mana'o e teu pepa e aunoa ma se mamanu faifaipea, e mafai ona vave ma faigofie le teuina, ae e mafai ona faigata le toe aumai mulimuli ane. leaga faigata.

Tala masani "6 Tulafono Fa'atonu mo MongoDB Schema Design" E aoga le faitau, ma foliga fa'apei Fa'ata'ita'iga su'esu'e i le meafaigaluega lona tolu Studio 3T, e aoga le faʻaaogaina mo siaki masani o taʻaloga.

Aua ne'i galo le fa'avasegaga

O le fa'agalo o le fa'asologa o fa'asologa e mafai ona fa'atupu ai le le fiafia ma fa'ama'imau le taimi nai lo so'o se isi fa'atonuga sese. Ole fa'aoga ole MongoBD ituaiga binary. Ae e foliga mai e le aoga i soo se tasi. Mata'upu ma'ale'ale, ma'ale'ale ma'ale'ale, binary ituaiga sa manatu anachronism fiailoa faatasi ai ma lopa, caftans ma mimigi misa i tua i le 80s o le seneturi talu ai. O le taimi nei o lo latou faʻaaogaina e le mafai ona faʻamagaloina. I le olaga moni, o le " uila afi " e tutusa ma le "Motorcycle". Ma o "Peretania" ma "Peretania" o le nofoaga lava e tasi. O se mata'itusi la'ititi e na'o le mata'itusi pito i luga e tutusa ma se mata'itusi tetele. Ma 'aua ne'i amata a'u i le fa'avasegaina o fa'aupuga. Pe a fatuina se faʻamaumauga i MongoDB, faʻaaoga le faʻaupuga faʻapitoa ma resitala, lea e fetaui ma le gagana ma aganuu tagata fa'aoga. Ole mea lea ole a fa'afaigofie atili ai le su'esu'eina ile manoa.

Fausia ni aoina ma ni pepa tetele

MongoDB e fiafia e faʻafeiloaʻi pepa tetele e oʻo atu i le 16MB i le aoina, ma GridFS Fuafuaina mo pepa tetele e sili atu i le 16 MB. Ae ona o pepa tetele e mafai ona tuʻuina iina, o le teuina iina e le o se manatu lelei. MongoDB o le a sili ona aoga pe afai e te teuina pepa taʻitasi e na o ni nai kilobytes le lapopoa, faʻapipiʻi e pei o laina i se laulau SQL lautele. O pepa tetele o le a avea ma puna o faʻafitauli i gaosiga.

Fausiaina o pepa ma fa'asologa tetele

O pepa e mafai ona iai fa'asologa. E sili pe afai o le numera o elemene i le fa'asologa e mamao mai se numera fa-numera. Afai e fa'aopoopo fa'atasi elemene i se fa'asologa, o le a sili atu i le pepa o lo'o i ai ma e mana'omia gaoioi, o lona uiga o le a manaomia faafou faasino igoa foi. Pe a toe fa'asinoina se pepa o lo'o i ai se lapo'a tele, o fa'asinomaga o le a masani ona fa'asolo, ona o lo'o i ai se se faamaumauga, lea e teu ai lona faasino upu. O lenei toe fa'asinomaga e tupu fo'i pe a fa'aofi pe tape se pepa.

MongoDB ei ai se mea e taʻua "faatumu tulaga", lea e maua ai le avanoa mo pepa e faʻatupulaia e faʻaitiitia ai lenei faʻafitauli.
Atonu e te manatu e mafai ona e faia e aunoa ma le fa'avasegaina o fa'asologa. Ae paga lea, o le le lava o fa'asino igoa e ono mafua ai ona e iai isi fa'afitauli. Talu ai o pepa e su'esu'e mai le amataga e o'o i le fa'ai'uga, o le su'eina o elemene i le pito o le fa'asologa o le a umi se taimi, ma o le tele o gaioiga e feso'ota'i ma sea pepa o le a telegese.

Aua nei galo e taua le faasologa o laasaga i se tuufaatasiga

I totonu o se faʻamaumauga faʻamaumauga faʻatasi ai ma se fesili optimizer, o fesili e te tusia o faʻamatalaga o mea e te manaʻo e maua, ae le o le auala e maua ai. O lenei masini e galue e ala i le faʻataʻitaʻiga ma le okaina i totonu o se faleaiga: e masani lava e te faʻatonuina se ipu, ae le tuʻuina atu faʻamatalaga auiliili i le kuka.

I MongoDB, e te faʻatonuina le kuka. Mo se faʻataʻitaʻiga, e tatau ona e faʻamautinoa e pasi atu faʻamatalaga reduce i le vave e mafai ai i le faʻaogaina o paipa $match и $project, ma fa'avasega e na'o le mae'a reduce, ma o le sailiga e tupu tonu lava i le faasologa e te manaʻo ai. O le iai o se su'esu'ega fa'asili e fa'ate'aina ai galuega e le mana'omia, fa'asolo lelei laasaga, ma filifili ituaiga fa'atasi e mafai ona fa'aleagaina oe. Faatasi ai ma MongoDB, e sili atu lau pule ile tau ole faigofie.

Meafaigaluega pei Studio 3T o le a faafaigofieina le fausiaina o fesili tuufaatasi i totonu MongoDB. O le vaega a le Aggregation Editor e mafai ai ona e fa'aogaina fa'amatalaga paipa i le tasi la'asaga i le taimi, ma asiasia fa'amatalaga fa'aoga ma fa'amatalaga i la'asaga ta'itasi e fa'afaigofie ai le fa'aogaina.

Fa'aaogāina Fa'amaumauga vave

Aua ne'i setiina filifiliga tusitusi a MongoDB ina ia maualuga le saoasaoa ae maualalo le fa'atuatuaina. O lenei faiga "faila-ma-galo" e foliga vave ona e toe faafoi mai le poloaiga aʻo leʻi faia le tusitusi. Afai e paʻu le faiga aʻo leʻi tusia faʻamaumauga i le tisiki, o le a leiloa ma faʻamutaina i se tulaga le fetaui. O le mea e laki ai, 64-bit MongoDB ua mafai ona faʻaogaina.

O le MMAPv1 ma le WiredTiger e teu ai masini e faʻaogaina le taʻavale e puipuia ai lenei mea, e ui lava e mafai e le WiredTiger ona toe faʻaleleia i le taimi mulimuli. nofoaga e pulea ai, pe afai e le mafai ona ta'oto.

Tusitala fa'amaumauga e fa'amautinoaina o lo'o i ai le fa'amaumauga i se tulaga faifaipea pe a uma ona toe fa'aleleia ma taofia uma fa'amaumauga se'ia o'o ina tusia i le api talaaga. Ole taimi ole pu'ega e fa'apipi'iina ile fa'aogaina ole fa'amaufa'ailoga commitIntervalMs.

Ina ia mautinoa o faʻamaumauga, ia mautinoa o loʻo mafai ona faʻaogaina i le faila faila (storage.journal.enabled), ma le tele o fa'amaumauga e fetaui ma le aofa'i o fa'amatalaga e te gafatia e leiloa.

Fa'avasega e aunoa ma se faasino igoa

A'o su'esu'e ma fa'apotopoto, e tele lava ina mana'omia le fa'avasegaina o fa'amaumauga. Sei o tatou faʻamoemoe e faia lenei mea i se tasi o vaega mulimuli, pe a uma ona faʻamamaina le taunuʻuga ina ia faʻaitiitia le aofaʻi o faʻamaumauga o loʻo faʻavasega. Ma e oʻo lava i lenei tulaga, mo le faʻavasegaina e te manaʻomia index. E mafai ona e fa'aogaina se fa'asino igoa tasi pe fa'atasi.

Afai e leai se faasino igoa talafeagai, o le a faia e MongoDB e aunoa ma lea. O lo'o i ai se fa'atapula'a manatua o le 32 MB i le aofa'i atoa o pepa uma i totonu galuega faavasega, ma afai e ausia e MongoDB lenei tapulaʻa, o le a lafoina se mea sese pe toe foʻi mai fa'amaumauga gaogao.

Su'e e aunoa ma le lagolago fa'asino

O su'esu'ega su'esu'e e fa'atino ai se galuega e pei o le JOIN operation i SQL. Ina ia sili ona lelei, latou te manaʻomia le faʻailoga o le tau o le ki faʻaaogaina e avea ma ki mai fafo. E le o manino lenei mea ona o le faʻaaogaina e le o atagia i totonu explain(). O ia fa'ailoga o lo'o fa'aopoopo i le fa'ailoga o lo'o tusia i totonu explain(), lea e fa'aaogaina e le au fai paipa $match и $sort, pe a latou feiloai i le amataga o le paipa. O fa'asinomaga e mafai nei ona aofia ai so'o se la'asaga fa'atasiga paipa.

Filifili ese mai le faʻaaogaina o faʻafouga tele

Metotia db.collection.update() fa'aaoga e sui ai se vaega o se pepa o lo'o i ai po'o le pepa atoa, e o'o atu i se sui atoatoa, e fa'atatau i le parakalafa e te fa'ailoaina update. O le mea e le o manino lava o le a le fa'agaoioia pepa uma i le aoina se'i vagana ua e setiina le filifiliga multi e fa'afou pepa uma e fetaui ma ta'iala o talosaga.

Aua nei galo le taua o le faasologa o ki i se laulau hash

I totonu o le JSON, o se mea e aofia ai se aofaʻi e le faʻatonuina o le lapoʻa zero poʻo le sili atu o igoa / tau taua, lea o le igoa o se manoa ma le tau o se manoa, numera, boolean, null, mea, poʻo se laina.

Ae paga lea, o le BSON e tuʻuina atu le tele o faʻamamafa i le faʻatonuga pe a suʻe. I MongoDB, o le faasologa o ki i totonu o mea faʻapipiʻi mataupu, o lona uiga { firstname: "Phil", surname: "factor" } - e le tutusa lea ma { { surname: "factor", firstname: "Phil" }. O lona uiga, e tatau ona e teuina le faasologa o igoa/taua paiga i au pepa pe afai e te manaʻo e mautinoa e maua.

Aua le fenumiai "Leai" и "le fa'amalamalamaina"

tāua "le fa'amalamalamaina" e leʻi aoga i JSON, e tusa ai ma tulaga aloaia JSON (ECMA-404 Vaega 5), ​​e ui lava o loʻo faʻaaogaina i le JavaScript. E le gata i lea, mo BSON ua le toe aoga ma ua liua i $null, e le o taimi uma o se fofo lelei. Aloese mai le faaaogaina "le fa'amalamalamaina" i MongoDB.

Faaaoga $limit() e aunoa ma $sort()

O le tele o taimi pe a e atiaʻe i MongoDB, e aoga le naʻo le vaʻai i se faʻataʻitaʻiga o le iʻuga o le a toe faʻafoʻi mai i se fesili poʻo se faʻapotopotoga. Mo lenei galuega e te manaʻomia $limit(), ae e le tatau lava ona i ai i le code mulimuli se'i vagana ua e fa'aaogaina muamua $sort. O lenei masini e manaʻomia aua a leai e le mafai ona e faʻamaonia le faʻatonuga o le iʻuga, ma o le a le mafai ona e vaʻavaʻai ma le mautinoa i faʻamatalaga. I le pito i luga o le taunuuga o le ae maua ai faʻamatalaga eseese e faʻatatau i le faʻavasegaina. Ina ia galue ma le fa'atuatuaina, e tatau ona fa'amautu fesili ma fa'aputuga, o lona uiga, e maua mai i'uga tutusa i taimi uma e fa'atino ai. Code e iai $limit(), ae leai $sort, o le a le fa'amautu ma e ono mafua ai ni mea sese e faigata ona sailia.

iʻuga

Pau lava le auala e le fiafia ai i MongoDB o le faʻatusatusa saʻo i se isi ituaiga o faʻamaumauga, e pei o le DBMS, poʻo le sau e faʻaaogaina e faʻatatau i faʻamoemoega. E pei o le faatusaina o se moli i se tui. O faiga fa'amaumauga e fa'atino ai fa'amoemoega fa'apitoa. E sili le na'o lou malamalama ma talisapaia nei eseesega mo oe lava. O se mea e maasiasi ai le faʻamalosia o le au atinaʻe MongoDB i luga o se auala na faʻamalosia ai i latou i lalo o le ala DBMS. Ou te manaʻo e vaʻai i ni auala fou ma manaia e foia ai faʻafitauli tuai, e pei o le faʻamautinoaina o le faʻamaoni o faʻamaumauga ma le fatuina o faʻamaumauga faʻamaumauga e faʻamalosia i le toilalo ma osofaʻiga leaga.

MongoDB's ntroduction of ACID transactionality in version 4.0 o se faʻataʻitaʻiga lelei o le faʻalauiloaina o faʻaleleia atili i se auala fou. Ole tele o pepa ma fa'amatalaga fa'amatalaga ua avea nei ma atomic. E mafai foi ona fetuutuunai le taimi e manaʻomia e maua ai loka ma faʻamutaina fefaʻatauaiga pipii, faʻapea foʻi ma le suia o le tulaga tuʻufua.

14 mea maimau pe ana ou iloa ae leʻi amataina MongoDB

Faitau atili:

puna: www.habr.com

Faaopoopo i ai se faamatalaga