Abubuwa 14 da nake fata na sani kafin farawa da MongoDB

An shirya fassarar labarin a jajibirin fara karatun "Tsarin bayanai marasa dangantaka".

Abubuwa 14 da nake fata na sani kafin farawa da MongoDB

Karin bayanai:

  • Yana da matukar mahimmanci don haɓaka tsari ko da yake na zaɓi ne a cikin MongoDB.
  • Hakazalika, fihirisa dole ne su dace da tsarin ku da tsarin samun dama.
  • Ka guji amfani da manyan abubuwa da manyan jeri.
  • Yi hankali da saitunan MongoDB, musamman idan ya zo ga tsaro da aminci.
  • MongoDB ba shi da mai inganta tambaya, don haka dole ne ku yi hankali yayin gudanar da ayyukan tambaya.

Na daɗe ina aiki tare da bayanan bayanai, amma kwanan nan aka gano MongoDB. Akwai 'yan abubuwan da nake fata na sani kafin in fara aiki da su. Lokacin da mutum ya riga ya sami gogewa a wani fanni, sun riga sun riga sun san menene ma'ajin bayanai da abin da suke yi. Da fatan samun sauƙin fahimta ga wasu, na gabatar da jerin kurakuran gama gari.

Ƙirƙirar uwar garken MongoDB ba tare da tantancewa ba

Abin takaici, an shigar da MongoDB ba tare da tantancewa ta tsohuwa ba. Don wurin aiki da aka isa gida, wannan al'ada ce ta al'ada. Amma tun da MongoDB tsarin mai amfani ne da yawa wanda ke son amfani da adadin ƙwaƙwalwar ajiya, zai fi kyau idan kun sanya shi a kan uwar garken mai yawan RAM mai yiwuwa, koda kuwa za ku yi amfani da shi ne kawai don haɓakawa. Shigar da uwar garken ta hanyar tashar tsoho na iya zama matsala, musamman idan kowane lambar javascript za a iya aiwatar da ita a cikin buƙatar (misali, $where a matsayin ra'ayi don allura).

Akwai hanyoyin tantancewa da yawa, amma mafi sauƙi shine saita ID/kalmar sirri mai amfani. Yi amfani da wannan ra'ayin yayin da kuke tunani game da ingantaccen tabbaci dangane da LDAP. Idan ya zo ga tsaro, MongoDB ya kamata a sabunta shi akai-akai, kuma koyaushe yakamata a bincika rajista don samun damar shiga mara izini. Misali, Ina so in zaɓi wata tashar jiragen ruwa ta daban a matsayin tsohuwar tashar jiragen ruwa.

Kar a manta daure saman harin zuwa MongoDB

Jerin Tsaro na MongoDB yana ƙunshe da shawarwari masu kyau don rage haɗarin kutsewar hanyar sadarwa da zubewar bayanai. Yana da sauƙi a goge shi kuma a ce uwar garken ci gaba baya buƙatar babban matakin tsaro. Koyaya, ba haka bane mai sauƙi kuma wannan ya shafi duk sabar MongoDB. Musamman, idan babu wani dalili mai mahimmanci don amfani mapReduce, group ko $ku, kuna buƙatar musaki amfani da lambar sabani a cikin JavaScript ta rubuta a cikin fayil ɗin daidaitawa javascriptEnabled:false. Tun da ba a ɓoye fayilolin bayanai a cikin daidaitaccen MongoDB, yana da ma'ana don gudanar da MongoDB tare da Mai amfani da sadaukarwa, wanda ke da cikakken damar yin amfani da fayiloli, tare da iyakacin damar yin amfani da shi kawai da kuma ikon yin amfani da tsarin sarrafa hanyar shiga fayil ɗin kansa.

Kuskure yayin haɓaka kewaye

MongoDB baya amfani da tsari. Amma wannan ba yana nufin ba a buƙatar tsarin ba. Idan kawai kuna son adana takardu ba tare da kowane tsari mai daidaituwa ba, adana su na iya zama da sauri da sauƙi, amma dawo da su daga baya na iya zama da wahala. tsine mai wuya.

Labarin gargajiya"Dokokin 6 na Babban Yatsan hannu don Tsarin Tsarin MongoDB" Ya cancanci karantawa, da fasali irin su Mai bincike na Schema a cikin kayan aiki na ɓangare na uku Studio 3T, yana da daraja amfani da shi don dubawa na yau da kullun na da'irori.

Kar a manta da tsari iri-iri

Manta tsari na iya haifar da ƙarin takaici da ɓata lokaci fiye da kowane saitin da ba daidai ba. Ta hanyar tsoho MongoBD yana amfani binary iri. Amma da wuya ya zama mai amfani ga kowa. Abubuwan da ke da hankali, lafazin-hankali, nau'ikan binary an ɗauke su anachronisms masu ban sha'awa tare da beads, caftans da gashin baki masu lanƙwasa a cikin 80s na ƙarni na ƙarshe. Yanzu amfani da su ba zai yuwu ba. A rayuwa ta hakika, “babura” iri daya ne da “Babura”. Kuma "Birtaniya" da "Birtaniya" wuri ɗaya ne. Karamin harafi shine kawai babban harafi daidai da babban harafi. Kuma kar ka sa ni fara rarrabuwar kawuna. Lokacin ƙirƙirar bayanai a cikin MongoDB, yi amfani da haɗaɗɗen lafazin rashin fahimta da yin rijista, wanda ya dace da harshe da al'adun masu amfani da tsarin. Wannan zai sa bincika bayanan kirtani ya fi sauƙi.

Ƙirƙiri tarin tarin tare da manyan takardu

MongoDB yana farin cikin karɓar manyan takardu har zuwa 16MB a cikin tarin, kuma GridFS An ƙirƙira don manyan takaddun girma fiye da 16 MB. Amma saboda kawai ana iya sanya manyan takardu a wurin, adana su a can ba kyakkyawan ra'ayi bane. MongoDB zai yi aiki mafi kyau idan kun adana takardun mutum ɗaya waɗanda ke da ƴan kilobytes a girman, suna kula da su kamar layuka a cikin babban tebur na SQL. Manyan takardu za su zama tushen matsaloli tare da yawan aiki.

Ƙirƙirar takardu tare da manyan jeri

Takardu na iya ƙunsar tsararru. Zai fi kyau idan adadin abubuwan da ke cikin jeri ya yi nisa da lamba huɗu. Idan an ƙara abubuwa zuwa tsararru akai-akai, zai fi girma daftarin aiki da ke ɗauke da shi kuma zai buƙaci zama motsa, wanda ke nufin zai zama dole sabunta fihirisa kuma. A lokacin da aka sake tsara takarda tare da babban jeri, yawancin fihirisa za a sake rubuta su, tun da akwai rikodi, wanda ke adana fihirisar sa. Wannan sake firikwensin kuma yana faruwa lokacin da aka saka ko share takarda.

MongoDB yana da wani abu da ake kira "cika factor", wanda ke ba da sarari ga takardu don girma don rage wannan matsala.
Kuna iya tunanin cewa za ku iya yi ba tare da lissafin tsararru ba. Abin takaici, rashin fihirisa na iya haifar da wasu matsaloli. Tun da ana bincika takardu daga farko zuwa ƙarshe, neman abubuwa a ƙarshen tsararrun zai ɗauki lokaci mai tsawo, kuma yawancin ayyukan da ke da alaƙa da irin wannan takaddar za su kasance. sannu a hankali.

Kar a manta cewa tsari na matakai a cikin taro yana da mahimmanci

A cikin tsarin bayanai tare da mai inganta tambaya, tambayoyin da kuke rubuta bayanan abubuwan da kuke son samu ne, ba yadda ake samun su ba. Wannan tsarin yana aiki ta hanyar kwatanci tare da yin oda a cikin gidan abinci: yawanci kuna yin odar tasa ne kawai, kuma kada ku ba da cikakken bayani ga mai dafa abinci.

A cikin MongoDB, kuna koya wa mai dafa abinci. Misali, kuna buƙatar tabbatar da cewa bayanan sun wuce reduce da wuri-wuri a cikin bututun amfani da $match и $project, kuma ana rarrabawa ne kawai bayan reduce, da kuma cewa binciken yana faruwa a daidai tsarin da kuke so. Samun mai inganta tambaya wanda ke kawar da aikin da ba dole ba, mafi kyawun tsara matakai, da zaɓi nau'ikan haɗin gwiwa na iya lalata ku. Tare da MongoDB, kuna da ƙarin iko akan farashin dacewa.

Kayan aiki kamar Studio 3T zai sauƙaƙa gina tambayoyin tarawa a ciki MongoDB. Siffar Editan Haɗaɗɗiyar tana ba ku damar yin amfani da bayanan bututun mataki ɗaya a lokaci ɗaya, da kuma bincika bayanan shigarwa da fitarwa a kowane mataki don sauƙaƙa gyara kuskure.

Amfani da Quick Recording

Kada a taɓa saita zaɓuɓɓukan rubuta MongoDB don samun babban gudu amma ƙarancin aminci. Wannan yanayin "fayil-da-manta" yana da sauri saboda ana dawo da umarnin kafin rubutawa ya faru. Idan tsarin ya rushe kafin a rubuta bayanan zuwa faifai, zai ɓace kuma ya ƙare cikin yanayin da bai dace ba. An yi sa'a, 64-bit MongoDB ya kunna shiga.

Injunan ajiya na MMAPv1 da WiredTiger suna amfani da shiga don hana hakan, kodayake WiredTiger na iya murmurewa zuwa daidaiton ƙarshe. wurin sarrafawa, idan an kashe shiga.

Yin aikin jarida yana tabbatar da cewa bayanan yana cikin daidaitaccen yanayi bayan an dawo da shi kuma yana riƙe duk bayanan har sai an rubuta shi zuwa jarida. Ana saita yawan rikodi ta amfani da siga commitIntervalMs.

Don tabbatar da shigarwar, tabbatar an kunna shiga cikin fayil ɗin daidaitawa (storage.journal.enabled), kuma yawan rikodin ya yi daidai da adadin bayanan da za ku iya rasa.

Rarraba ba tare da fihirisa ba

Lokacin bincike da tarawa, sau da yawa ana buƙatar warware bayanai. Mu yi fatan za a yi hakan a mataki na karshe, bayan tace sakamakon domin a rage yawan bayanan da ake tantancewa. Kuma ko da a wannan yanayin, don rarrabawa za ku buƙaci index. Kuna iya amfani da fihirisar guda ɗaya ko mahadi.

Idan babu fihirisar da ta dace, MongoDB zai yi ba tare da shi ba. Akwai iyakar žwažwalwar ajiya na 32 MB akan jimillar girman duk takardun da ke ciki ayyukan rarrabawa, kuma idan MongoDB ya kai wannan iyaka, to ko dai zai jefa kuskure ko ya dawo kundin rikodin komai.

Bincika ba tare da goyan bayan fihirisa ba

Tambayoyin nema suna yin aiki mai kama da aikin JOIN a cikin SQL. Don aiki mafi kyau, suna buƙatar fihirisar ƙimar maɓalli da aka yi amfani da su azaman maɓalli na waje. Wannan ba a bayyane yake ba saboda ba a nuna amfani a ciki ba explain(). Irin waɗannan fihirisa suna ƙari ga fihirisar da aka rubuta a ciki explain(), wanda kuma masu aikin bututun mai ke amfani da su $match и $sort, lokacin da suka hadu a farkon bututun. Lissafi na iya rufe kowane mataki yanzu tara bututu.

Fita daga amfani da sabuntawa da yawa

Hanyar db.collection.update() ana amfani da shi don canza wani ɓangare na takaddun da ke akwai ko gabaɗayan takaddar, har zuwa cikakken maye gurbin, ya danganta da ma'aunin da kuka ƙayyade. update. Abin da ba a bayyane yake ba shine cewa ba zai aiwatar da duk takaddun da ke cikin tarin ba sai dai idan kun saita zaɓi multi don sabunta duk takaddun da suka cika ka'idodin buƙatun.

Kar a manta da mahimmancin tsari na maɓallan a cikin tebur na hash

A JSON, abu ya ƙunshi tarin girman sifili mara tsari ko fiye da nau'i-nau'i/daraja, inda suna shine kirtani kuma ƙima shine kirtani, lamba, boolean, null, abu, ko tsararru.

Abin takaici, BSON yana ba da fifiko sosai kan tsari yayin bincike. A cikin MongoDB, tsarin maɓalli a cikin abubuwan da aka gina al'amura, i.e. { firstname: "Phil", surname: "factor" } - wannan ba daya bane { { surname: "factor", firstname: "Phil" }. Wato, dole ne ku adana tsarin nau'i-nau'i na suna / ƙimar a cikin takaddun ku idan kuna son tabbatar da gano su.

Kar ku rude "Null" и "wanda ba a bayyana ba"

Ma'ana "wanda ba a bayyana ba" bai taba aiki a JSON ba, a cewar hukuma misali JSON (ECMA-404 Sashe na 5), ​​ko da yake ana amfani da shi a cikin JavaScript. Bugu da ƙari, don BSON ya ƙare kuma an canza shi zuwa $null, wanda ba koyaushe ba ne mafita mai kyau. Ka guji amfani "wanda ba a bayyana ba" a cikin MongoDB.

Amfani $limit() ba tare da $sort()

Sau da yawa lokacin da kuke haɓakawa a MongoDB, yana da amfani don ganin samfurin sakamakon da za a dawo daga tambaya ko tarawa. Don wannan aikin za ku buƙaci $limit(), amma bai kamata ya kasance a cikin lambar ƙarshe ba sai dai idan kun yi amfani da shi a baya $sort. Wannan makanikin ya zama dole saboda in ba haka ba ba za ku iya ba da garantin odar sakamakon ba, kuma ba za ku iya dogara ga bayanan ba. A saman sakamakon za ku sami shigarwa daban-daban dangane da rarrabuwa. Don yin aiki da dogaro, tambayoyi da tarawa dole ne su kasance masu ƙididdigewa, wato, samar da sakamako iri ɗaya duk lokacin da aka aiwatar da su. Lambar da ta ƙunshi $limit(), amma a'a $sort, ba zai zama ƙaddara ba kuma yana iya haifar da kurakurai waɗanda zasu yi wahala a gano su.

ƙarshe

Hanya daya tilo da za a yi takaici tare da MongoDB ita ce kwatanta shi kai tsaye zuwa wani nau'in bayanai, kamar DBMS, ko kuma zuwa don amfani da shi bisa wasu tsammanin. Yana kama da kwatanta orange da cokali mai yatsa. Tsarukan bayanai suna yin amfani da takamaiman dalilai. Zai fi kyau kawai ku fahimta kuma ku yaba wa kanku waɗannan bambance-bambance. Zai zama abin kunya a matsa wa masu haɓaka MongoDB akan hanyar da ta tilasta musu sauka hanyar DBMS. Ina so in ga sababbin hanyoyi masu ban sha'awa don magance matsalolin tsofaffi, irin su tabbatar da amincin bayanai da ƙirƙirar tsarin bayanan da ke da tsayayya ga gazawa da hare-haren ƙeta.

Gabatarwar MongoDB na ma'amalar ACID a cikin sigar 4.0 misali ne mai kyau na gabatar da muhimman ci gaba ta wata sabuwar hanya. Ma'amaloli da yawa da takaddun bayanai da ma'amaloli da yawa yanzu sun zama atomic. Hakanan yana yiwuwa a daidaita lokacin da ake buƙata don samun makullai da ƙare ma'amaloli masu makale, da kuma canza matakin keɓewa.

Abubuwa 14 da nake fata na sani kafin farawa da MongoDB

Kara karantawa:

source: www.habr.com

Add a comment