14 mau mea aʻu i makemake ai e ʻike ma mua o ka hoʻomaka ʻana me MongoDB

Ua hoʻomākaukau ʻia ka unuhi ʻana o ka ʻatikala ma ka pō o ka hoʻomaka ʻana o ka papa "Nā waihona pili pili ʻole".

14 mau mea aʻu i makemake ai e ʻike ma mua o ka hoʻomaka ʻana me MongoDB

Nā mea koʻikoʻi:

  • He mea nui loa ka hoʻomohala ʻana i kahi schema ʻoiai he koho ia ma MongoDB.
  • Pēlā nō, pono e hoʻohālikelike nā indexes i kāu schema a me nā hiʻohiʻona komo.
  • E hōʻalo i ka hoʻohana ʻana i nā mea nui a me nā ʻāpana nui.
  • E makaʻala me nā hoʻonohonoho MongoDB, ʻoi aku ka nui o ka palekana a me ka hilinaʻi.
  • ʻAʻohe ʻo MongoDB kahi hulina hulina, no laila pono ʻoe e makaʻala i ka wā e hana ai i nā hana nīnau.

Ua hana au me nā waihona ʻikepili no ka manawa lōʻihi, akā ʻike ʻia ʻo MongoDB. Aia kekahi mau mea aʻu i makemake ai e ʻike ma mua o koʻu hoʻomaka ʻana e hana me ia. Inā loaʻa i ke kanaka ka ʻike ma kekahi kahua, ua manaʻo mua lākou e pili ana i ka ʻikepili a me kā lākou hana. I ka manaʻolana e maʻalahi ka hoʻomaopopo ʻana i nā poʻe ʻē aʻe, hōʻike wau i kahi papa inoa o nā hewa maʻamau.

Ke hana nei i kahi kikowaena MongoDB me ka ʻole o ka hōʻoia

ʻO ka mea pōʻino, ua hoʻokomo ʻia ʻo MongoDB me ka ʻole o ka hōʻoia ʻana. No kahi hale hana i loaʻa ma ka ʻāina, he mea maʻamau kēia hana. Akā ʻoiai ʻo MongoDB kahi ʻōnaehana hoʻohana lehulehu e makemake e hoʻohana i ka nui o ka hoʻomanaʻo, ʻoi aku ka maikaʻi inā ʻoe e kau iā ia ma kahi kikowaena me ka nui o ka RAM e like me ka hiki, ʻoiai inā ʻoe e hoʻohana wale ia no ka hoʻomohala ʻana. Hiki ke pilikia ke kau ʻana ma ke kikowaena ma o ke awa paʻamau, ʻoiai inā hiki ke hoʻokō ʻia kekahi code javascript ma ke noi (no ka laʻana, $where ma ke ano he manao no wahahee).

Nui nā ʻano hana hōʻoia, akā ʻo ka maʻalahi ka hoʻonohonoho ʻana i kahi mea hoʻohana ID / password. E hoʻohana i kēia manaʻo oiai ʻoe e noʻonoʻo e pili ana i ka hōʻoia nani ma muli ʻDlelo Hana LDAP. I ka pili ʻana i ka palekana, pono e hoʻonui mau ʻia ʻo MongoDB, a e nānā mau ʻia nā lāʻau no ke komo ʻole ʻia. No ka laʻana, makemake wau e koho i kahi awa ʻē aʻe e like me ke awa paʻamau.

Mai poina e hoʻopaʻa i ka ʻili hoʻouka iā MongoDB

MongoDB Security Checklist Loaʻa nā ʻōlelo aʻoaʻo maikaʻi no ka hōʻemi ʻana i ka pilikia o ke komo ʻana o ka pūnaewele a me ka leakage ʻikepili. He maʻalahi ke kāhili a ʻōlelo ʻaʻole pono kahi kikowaena hoʻomohala i kahi kiʻekiʻe o ka palekana. Eia naʻe, ʻaʻole ia maʻalahi a pili kēia i nā kikowaena MongoDB āpau. ʻO ka mea nui, inā ʻaʻohe kumu koʻikoʻi e hoʻohana ai mapReduce, group ai ole ia, $ kahi, pono ʻoe e hoʻopau i ka hoʻohana ʻana i ka code arbitrary ma JavaScript ma ke kākau ʻana i ka faila hoʻonohonoho javascriptEnabled:false. No ka mea ʻaʻole i hoʻopili ʻia nā faila data ma MongoDB maʻamau, kūpono ke holo ʻana iā MongoDB me Mea hoʻohana hoʻolaʻa, ka mea i loaʻa piha i nā faila, me ka hiki ke hoʻohana i nā mana o ka ʻōnaehana ponoʻī.

Ua hewa i ka hoʻomohala ʻana i ke kaapuni

ʻAʻole hoʻohana ʻo MongoDB i kahi schema. Akā ʻaʻole kēia manaʻo ʻaʻole pono ka papahana. Inā makemake ʻoe e mālama i nā palapala me ka ʻole o ke ʻano maʻamau, hiki ke maʻalahi ka mālama ʻana iā lākou, akā paʻakikī ke kiʻi ʻana iā lākou ma hope. paakiki loa.

ʻatikala kahiko "6 Nā lula o ka manamana lima no ka hoʻolālā hoʻolālā MongoDB" He mea pono e heluhelu, a me nā hiʻohiʻona like Hoʻopololei polokalamu i ka mea hana ʻaoʻao ʻekolu ʻo Studio 3T, pono ia e hoʻohana no ka nānā maʻamau o nā kaʻa.

Mai poina i ka hoʻonohonoho ʻana

ʻO ka poina ʻana i ka hoʻonohonoho ʻana e hiki ke hoʻonui i ka huhū a me ka pau ʻana o ka manawa ma mua o nā hoʻonohonoho hewa ʻole. Ma ka hoʻohana paʻamau ʻo MongoBD ʻano binary. Akā ʻaʻole hiki ke hoʻohana i kekahi. Ua manaʻo ʻia nā ʻano ʻano like ʻole o ka hihia, ka leo, a me nā ʻano binary he anachronisms me nā peʻa, nā caftans a me nā ʻumi ʻumi i ka makahiki 80 o ke kenekulia i hala. I kēia manawa ʻaʻole hiki ke kala ʻia kā lākou hoʻohana. Ma ke ola maoli, ua like ka "motorcycle" me "Motorcycle". A ʻo "Britain" a me "Britain" kahi like. ʻO ka huapalapala liʻiliʻi ka mea like me ka hua nui. A mai hoʻomaka iaʻu e hoʻokaʻawale i nā diacritics. I ka hana ʻana i kahi waihona ma MongoDB, e hoʻohana i ka hōʻiliʻili accent-insensitive a kakau inoa, e pili ana i ka olelo a moʻomeheu mea hoʻohana pūnaewele. E maʻalahi ka huli ʻana ma o ka ʻikepili string.

E hana i nā hōʻiliʻili me nā palapala nui

Hauʻoli ʻo MongoDB e hoʻokipa i nā palapala nui a hiki i ka 16MB i nā hōʻiliʻili, a GridFS Hoʻolālā ʻia no nā palapala nui ma mua o 16 MB. Akā no ka hiki ke waiho ʻia nā palapala nui ma laila, ʻaʻole maikaʻi ka mālama ʻana iā lākou ma laila. E hana maikaʻi ana ʻo MongoDB inā mālama ʻoe i nā palapala pākahi he mau kilobytes ka nui, e mālama ana iā lākou e like me nā lālani ma kahi papaʻaina SQL ākea. ʻO nā palapala nui ke kumu o nā pilikia huahua.

Ke hana ʻana i nā palapala me nā ʻāpana nui

Hiki i nā palapala ke loaʻa nā arrays. ʻOi aku ka maikaʻi inā lōʻihi ka helu o nā mea o ka laʻana mai kahi helu ʻehā. Inā hoʻohui pinepine ʻia nā mea i kahi laʻana, e ʻoi aku ka nui o ka palapala i loko o ia mea a pono ia neʻe, 'o ia ho'i e pono ai hōʻano hou i nā kuhikuhi. I ka helu hou ʻana i kahi palapala me kahi ʻano nui, e kākau pinepine ʻia nā kuhikuhi, no ka mea aia kahi puʻuwai, nāna e mālama i kāna papa kuhikuhi. Hoʻokomo ʻia a holoi ʻia paha kekahi palapala.

Ua kapa ʻia ʻo MongoDB "helu hoʻopiha", e hāʻawi ana i kahi lumi no nā palapala e ulu ai e hōʻemi i kēia pilikia.
Manaʻo paha ʻoe hiki iā ʻoe ke hana me ka ʻole o ka helu helu array. ʻO ka mea pōʻino, hiki ke loaʻa iā ʻoe nā pilikia ʻē aʻe i ka nele o nā kuhikuhi. No ka nānā 'ana i nā palapala mai ka ho'omaka a i ka pau 'ana, e lō'ihi ana ka 'imi 'ana i nā mea ma ka hope o ka laha, a 'o ka hapa nui o nā hana e pili ana i ia palapala. lohi.

Mai poina he mea nui ka hoʻonohonoho ʻana o nā ʻanuʻu i kahi hōʻuluʻulu

I loko o kahi ʻōnaehana waihona me kahi hulina hulina, ʻo nā nīnau āu e kākau ai he mau wehewehe ia o ka mea āu e makemake ai e loaʻa, ʻaʻole pehea e loaʻa ai. Hana kēia ʻano hana ma ke ʻano hoʻohālikelike me ke kauoha ʻana i loko o kahi hale ʻaina: maʻamau ʻoe e kauoha wale i kahi kīʻaha, a ʻaʻole hāʻawi i nā ʻōlelo kikoʻī i ke kuke.

Ma MongoDB, aʻo ʻoe i ke kuke. No ka laʻana, pono ʻoe e hōʻoia i ka hele ʻana o ka ʻikepili reduce e like me ka hiki wawe i ka pipeline hoʻohana $match и $project, a ma hope wale nō ka hoʻokaʻawale ʻana reduce, a e hana ʻia ka huli ma ke ʻano āu e makemake ai. ʻO ka loaʻa ʻana o kahi hulina hulina e hoʻopau i nā hana pono ʻole, hoʻonohonoho maikaʻi i nā ʻanuʻu, a koho i nā ʻano hui e hiki ke hao iā ʻoe. Me MongoDB, loaʻa iā ʻoe ka mana ʻoi aʻe ma ke kumukūʻai o ka maʻalahi.

Mea hana like Studio 3T e maʻalahi ke kūkulu ʻana i nā nīnau hōʻuluʻulu ma ʻO MongoDB. ʻO ka hiʻohiʻona Aggregation Editor hiki iā ʻoe ke hoʻopili i nā ʻōlelo pipeline i hoʻokahi pae i ka manawa, a nānā i ka ʻikepili komo a me ka hoʻopuka i kēlā me kēia pae e hoʻomaʻamaʻa i ka debugging.

Ke hoʻohana nei i ka hoʻopaʻa ʻana wikiwiki

Mai hoʻonoho i nā koho kākau MongoDB i loaʻa ka wikiwiki kiʻekiʻe akā haʻahaʻa haʻahaʻa. ʻO kēia ʻano "file-a-poina" Me he mea lā wikiwiki no ka mea ua hoʻihoʻi ʻia ke kauoha ma mua o ke kākau ʻana. Inā hāʻule ka ʻōnaehana ma mua o ka kākau ʻia ʻana o ka ʻikepili i ka disk, e nalowale ia a hoʻopau i kahi kūlana kūlike ʻole. ʻO ka mea pōmaikaʻi, ua hoʻohana ʻia ka 64-bit MongoDB.

Hoʻohana ka MMAPv1 a me WiredTiger i nā ʻenekini mālama i ka logging e pale ai i kēia, ʻoiai hiki iā WiredTiger ke hoʻihoʻi hou i ka hope. wahi hoʻomalu, inā pio ka logging.

ʻO ka hoʻopaʻa ʻana i ka puke moʻolelo e hōʻoiaʻiʻo i ka ʻikepili i kahi kūlana kūlike ma hope o ka hoʻihoʻi ʻana a mālama i nā ʻikepili āpau a hiki i ka kākau ʻana i ka puke pai. Hoʻonohonoho ʻia ka pinepine o nā hoʻopaʻa ʻana me ka hoʻohana ʻana i ka ʻāpana commitIntervalMs.

No ka hōʻoia ʻana i nā hoʻokomo, e hōʻoia i ka hiki ke hoʻopaʻa inoa i ka faila hoʻonohonoho (storage.journal.enabled), a ʻo ke alapine o ka hoʻopaʻa ʻana e pili ana i ka nui o ka ʻike i hiki iā ʻoe ke lilo.

Hoʻokaʻawale ʻole me ka helu ʻole

I ka ʻimi ʻana a me ka hōʻuluʻulu ʻana, pono pinepine e hoʻokaʻawale i ka ʻikepili. Manaʻolana mākou e hana ʻia kēia ma kekahi o nā pae hope loa, ma hope o ke kānana ʻana i ka hopena i mea e hōʻemi ai i ka nui o ka ʻikepili i hoʻokaʻawale ʻia. A i kēia hihia, no ka hoʻokaʻawale ʻana e pono ai ʻoe papa kuhikuhi. Hiki iā ʻoe ke hoʻohana i hoʻokahi a hui pū ʻia.

Inā ʻaʻohe kuhikuhi kūpono, e hana ʻo MongoDB me ka ʻole. Aia ka palena hoʻomanaʻo o 32 MB ma ka nui o nā palapala āpau i loko nā hana hoʻokaʻawale, a inā hiki ʻo MongoDB i kēia palena, a laila e hoʻolei i kahi hewa a hoʻi paha waihona mooolelo hakahaka.

Huli me ke kākoʻo index

Hana nā nīnau hulina i kahi hana e like me ka hana JOIN ma SQL. No ka hana maikaʻi, pono lākou i ka index o ka waiwai o ke kī i hoʻohana ʻia e like me ke kī haole. ʻAʻole maopopo kēia no ka mea ʻaʻole i ʻike ʻia ka hoʻohana ʻana i loko explain(). Hoʻohui ʻia ia mau helu i ka papa kuhikuhi i kākau ʻia ma explain(), ka mea i hoʻohana ʻia e nā mea hoʻokele pipeline $match и $sort, ke hui lakou i ka hoomaka ana o ka paipu. Hiki i nā papa kuhikuhi ke uhi i kēlā me kēia pae paipu huipu.

Ke koho ʻana i ka hoʻohana ʻana i nā mea hou he nui

Palapala db.collection.update() hoʻohana ʻia e hoʻololi i kahi ʻāpana o kahi palapala i loaʻa a i ʻole ka palapala holoʻokoʻa, a hiki i kahi pani piha, ma muli o ka ʻāpana āu e kuhikuhi ai update. ʻO ka mea maopopo ʻole, ʻaʻole ia e hoʻoponopono i nā palapala āpau i ka hōʻiliʻili ke ʻole ʻoe e hoʻonohonoho i ke koho multi e hōʻano hou i nā palapala a pau i kūpono i nā koi noi.

Mai poina i ke koʻikoʻi o ka hoʻonohonoho ʻana o nā kī ma ka papaʻaina hash

Ma JSON, aia kekahi mea i ka hōʻiliʻili ʻole ʻia o ka nui ʻaʻole a ʻoi aku paha nā inoa/waiwai, kahi inoa he kaula a ʻo ka waiwai he string, helu, boolean, null, object, a array.

ʻO ka mea pōʻino, kau nui ʻo BSON i ke kauoha i ka wā e ʻimi ai. Ma MongoDB, ke kauoha o nā kī i loko o nā mea i kūkulu ʻia mau meaʻo ia { firstname: "Phil", surname: "factor" } - ʻaʻole like kēia me { { surname: "factor", firstname: "Phil" }. ʻO ia hoʻi, pono ʻoe e mālama i ka hoʻonohonoho ʻana o nā paʻa inoa/waiwai i kāu mau palapala inā makemake ʻoe e ʻike i ka loaʻa ʻana iā lākou.

Mai huikau "Nul" и "ʻaʻole wehewehe"

waiwai "ʻaʻole wehewehe" ʻAʻole i kūpono i JSON, e like me kūlana kūlana JSON (ECMA-404 Māhele 5), ʻoiai ua hoʻohana ʻia ia ma JavaScript. Eia kekahi, no ka BSON ua kahiko ia a ua hoʻohuli ʻia i $null, ʻaʻole ia he hopena maikaʻi i nā manawa a pau. Hōʻalo i ka hoʻohana ʻana "ʻaʻole wehewehe" ma MongoDB.

E hoʻohana $limit() me kaʻole $sort()

ʻO ka manawa pinepine ke hoʻomohala nei ʻoe ma MongoDB, pono e ʻike wale i kahi laʻana o ka hopena e hoʻihoʻi ʻia mai kahi nīnau a i ʻole hōʻuluʻulu. No kēia hana e pono ai ʻoe $limit(), akā ʻaʻole pono ia i loko o ke code hope ke ʻole ʻoe e hoʻohana ma mua $sort. Pono kēia mechanic no ka mea ʻaʻole hiki iā ʻoe ke hōʻoiaʻiʻo i ke ʻano o ka hopena, a ʻaʻole hiki iā ʻoe ke ʻike pono i ka ʻikepili. Ma ka piko o ka hopena e loaʻa iā ʻoe nā helu like ʻole e pili ana i ka ʻohi ʻana. No ka hana hilinaʻi, pono e hoʻoholo i nā nīnau a me nā hōʻuluʻulu, ʻo ia hoʻi, e hana i nā hopena like i kēlā me kēia manawa e hoʻokō ʻia ai. Code i loaʻa $limit(), aka aole $sort, ʻaʻole ia e hoʻoholo a hiki ke hana i nā hewa i paʻakikī ke ʻimi.

hopena

ʻO ke ala wale nō e hōʻino ʻia me MongoDB ʻo ka hoʻohālikelike pololei ʻana iā ia me kahi ʻano waihona ʻē aʻe, e like me kahi DBMS, a i ʻole e hele mai e hoʻohana iā ia ma muli o kekahi mau manaʻo. Ua like ia me ka hoʻohālikelike ʻana i ka ʻalani me ka ʻōpala. Hoʻohana nā ʻōnaehana waihona i nā kumu kikoʻī. ʻOi aku ka maikaʻi e hoʻomaopopo a mahalo i kēia mau ʻokoʻa nou iho. He mea hilahila ke kaomi ʻana i nā mea hoʻomohala MongoDB ma luna o kahi ala e koi ai iā lākou i lalo i ke ala DBMS. Makemake au e ʻike i nā ala hou a hoihoi e hoʻoponopono i nā pilikia kahiko, e like me ka hōʻoia ʻana i ka pono o ka ʻikepili a me ka hoʻokumu ʻana i nā ʻōnaehana ʻikepili e kūpaʻa i ka hāʻule ʻole a me nā hoʻouka ʻino.

ʻO ka hoʻokomo ʻana o MongoDB o ACID transactionality ma ka mana 4.0 he kumu hoʻohālike maikaʻi ia o ka hoʻolauna ʻana i nā hoʻomaikaʻi koʻikoʻi ma kahi ala hou. ʻO nā ʻoihana palapala a me nā ʻōlelo he nui i kēia manawa atomic. Hiki ke hoʻololi i ka manawa i koi ʻia no ka loaʻa ʻana o nā laka a hoʻopau i nā kālepa paʻa, a me ka hoʻololi ʻana i ka pae kaʻawale.

14 mau mea aʻu i makemake ai e ʻike ma mua o ka hoʻomaka ʻana me MongoDB

E heluhelu hou:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka