Ntugharị okwu Bruce Momjian nke 2020 "Ịkpọghe onye njikwa mkpọchi Postgres".
(Rịba ama: Enwere ike nweta ajụjụ SQL niile sitere na slide ndị a site na njikọ a:
Nnọọ! Ọ dị mma ịnọrọ na Rọshịa ọzọ. Ọ dị m nwute na enweghị m ike ịbịa n'afọ gara aga, mana n'afọ a, mụ na Ivan nwere nnukwu atụmatụ. Enwere m olileanya na m ga-anọ ebe a ọtụtụ mgbe. Ọ na-amasị m ịbịa Russia. Aga m eleta Tyumen, Tver. Obi dị m ụtọ na m ga-enwe ike ịga leta obodo ndị a.
Aha m bụ Bruce Momjian. Ana m arụ ọrụ na EnterpriseDB ma soro Postgres na-arụ ọrụ ihe karịrị afọ 23. M bi na Philadelphia, USA. M na-eme njem ihe dị ka ụbọchị iri itoolu kwa afọ. M na-agakwa ihe dị ka ọgbakọ iri anọ. Nkem
M na-abụbu onye nkuzi, prọfesọ tupu m malite ịrụ ọrụ na Postgres. Obi dịkwa m ụtọ na m ga-enwe ike ugbu a ịgwa unu ihe m chọrọ ịgwa unu. Nke a bụ otu n'ime ihe ngosi kacha amasị m. Ihe ngosi a nwere ihe ngosi mmịfe 110. Anyị ga-amalite ikwu okwu na ihe ndị dị mfe, na njedebe akụkọ ahụ ga-adịwanye mgbagwoju anya, ọ ga-adịkwa mgbagwoju anya.
Nke a bụ mkparịta ụka na-adịghị mma. Mgbochi abụghị isiokwu kacha ewu ewu. Anyị chọrọ ka nke a pụọ ebe. Ọ dị ka ịgakwuru dọkịta eze.
- Mkpọchi bụ nsogbu maka ọtụtụ ndị na-arụ ọrụ na ọdụ data ma nwee ọtụtụ usoro na-agba ọsọ n'otu oge. Ha chọrọ igbochi. Ya bụ, taa, m ga-enye gị isi ihe ọmụma banyere igbochi.
- NJ azụmahịa. Nke a bụ akụkụ ihe ngosi na-agwụ ike, mana ha kwesịrị ịghọta.
- Ọzọ anyị ga-ekwu maka ụdị mgbochi. Nke a bụ akụkụ n'ụzọ ziri ezi.
- Na n'okpuru anyị ga-enye ụfọdụ ihe atụ nke igbochi. Ọ ga-esikwa ike nghọta.
Ka anyị kwuo maka igbochi.
Okwu anyị dị mgbagwoju anya. Olee otú ọtụtụ n'ime unu maara ebe akụkụ a si? Mmadụ abụọ. Nke a sitere na egwuregwu akpọrọ Colossal Cave Adventure. Ọ bụ egwuregwu kọmputa nke dabeere na ederede na 80s, echere m. N'ebe ahụ, ị ga-abanye n'ọgba, n'ime ụlọ nyocha, na ederede gbanwere, mana ọdịnaya dị otu ihe mgbe ọ bụla. Otu a ka m si echeta egwuregwu a.
Ma ebe a ka anyị na-ahụ aha mkpọchi nke si Oracle bịakwute anyị. Anyị na-eji ha.
N'ebe a, anyị na-ahụ okwu ndị na-agbagwoju m anya. Ọmụmaatụ, Share UPDATE ECXLUSIVE. Na-esote Share RAW ECXLUSIVE. N'ikwu eziokwu, aha ndị a edochaghị anya. Anyị ga-agbalị ịtụle ha n'ụzọ zuru ezu. Ụfọdụ nwere okwu ahụ bụ "oke", nke pụtara ikewa. Ụfọdụ nwere okwu a bụ "iche". Ụfọdụ nwere okwu abụọ a. Ọ ga-amasị m ibido ka mkpọchi ndị a si arụ ọrụ.
Na okwu a "nnweta" dịkwa oke mkpa. Na okwu "ahiri" bụ eriri. Ya bụ, ịnweta nkesa, nkesa ahịrị.
Ihe ọzọ dị mkpa ka a ghọta na Postgres, nke m na-enweghị ike ikpuchi na okwu m, bụ MVCC. Enwere m ihe ngosi dị iche na isiokwu a na webụsaịtị m. Ma ọ bụrụ na ị chere na ngosi a siri ike, MVCC nwere ike bụrụ nke kacha sie ike. Ma ọ bụrụ na ị nwere mmasị, ị nwere ike ile ya na webụsaịtị. Ị nwere ike ilele vidiyo ahụ.
Ihe ọzọ anyị kwesịrị ịghọta bụ ID azụmahịa. Ọtụtụ azụmahịa enweghị ike ịrụ ọrụ na-enweghị ihe nchọpụta pụrụ iche. Na ebe a anyị nwere nkọwa nke ihe azụmahịa bụ. Postgres nwere usoro ọnụọgụ ọnụọgụ abụọ azụmahịa. Ama m na nke a abụghị ezigbo ngwọta.
Burukwa n'uche na ihe ngosi slide ga-esi nnọọ ike nghọta, yabụ ihe a na-egosipụta na-acha uhie uhie bụ ihe ị kwesịrị ịṅa ntị.
Ka ahụ. A na-eme ka ọnụọgụ azụmahịa pụta ìhè na uhie. Egosiri ọrụ SELECT pg_back ebe a. Ọ na-eweghachite azụmahịa m yana ID azụmahịa.
Otu ihe ọzọ, ọ bụrụ na-amasị gị ngosi ma na-achọ ịgba ọsọ ya na nchekwa data gị, mgbe ahụ ị nwere ike ịga na njikọ a na pink ma budata SQL maka ngosi a. Ma ị nwere ike ịgba ọsọ ya na PSQL gị na ihe ngosi niile ga-adị na ihuenyo gị ozugbo. Ọ gaghị enwe ifuru, mana opekata mpe, anyị nwere ike ịhụ ya.
N'okwu a, anyị na-ahụ ID azụmahịa. Nke a bụ nọmba anyị nyere ya. Ma enwere ụdị NJ azụmahịa ọzọ na Postgres, nke a na-akpọ ID azụmahịa mebere
Anyị ga-aghọtakwa nke a. Nke a dị ezigbo mkpa, ma ọ bụghị na anyị agaghị enwe ike ịghọta mkpọchi na Postgres.
NJ azụmahịa mebere nke ọma bụ NJ azụmahịa na-enweghị ụkpụrụ na-adịgide adịgide. Dịka ọmụmaatụ, ọ bụrụ na m na-agba ọsọ iwu SELECT, mgbe ahụ enwere m ike agaghị agbanwe nchekwa data, agaghị m ekpochi ihe ọ bụla. Yabụ mgbe anyị na-eme Nhọrọ dị mfe, anyị anaghị enye azụmahịa ahụ NJ na-adịgide adịgide. Naanị ihe anyị na-enye ya bụ ID mebere ebe ahụ.
Na nke a na-eme ka arụmọrụ Postgres dịkwuo mma, na-eme ka ike nhicha dị ọcha, ya mere NJ azụmahịa mebere nwere ọnụọgụ abụọ. Nọmba mbụ tupu slash bụ ID azụ azụ. Na aka nri anyị na-ahụ naanị counter.
Ya mere, ọ bụrụ na m na-agba ọsọ a arịrịọ, ọ na-ekwu na backend ID bụ 2.
Ma ọ bụrụ na m na-agba ọsọ usoro nke azụmahịa ndị dị otú ahụ, mgbe ahụ, anyị na-ahụ na counter na-abawanye mgbe ọ bụla m na-agba ọsọ ajụjụ. Dịka ọmụmaatụ, mgbe m na-agba ọsọ ajụjụ 2/10, 2/11, 2/12, wdg.
Buru n'uche na enwere ogidi abụọ ebe a. N'aka ekpe anyị na-ahụ mebere azụmahịa ID - 2/12. Na n'aka nri anyị nwere ID azụmahịa na-adịgide adịgide. Na ubi a tọgbọrọ chakoo. Na azụmahịa a anaghị agbanwe nchekwa data. Yabụ na anaghị m enye ya ID azụmahịa na-adịgide adịgide.
Ozugbo m na-agba ọsọ iwu nyocha ((ANALYZE)), otu ajụjụ ahụ na-enye m NJ azụmahịa na-adịgide adịgide. Lee ka nke a si gbanwee nye anyị. Enweghị m NJ mbụ, mana ugbu a enwere m ya.
Yabụ ebe a bụ arịrịọ ọzọ, azụmahịa ọzọ. Nọmba azụmahịa mebere bụ 2/13. Ma ọ bụrụ na m rịọ maka ID azụmahịa na-adịgide adịgide, mgbe ahụ mgbe m na-agba ọsọ ajụjụ ahụ, m ga-enweta ya.
Yabụ, otu oge ọzọ. Anyị nwere NJ azụmahịa mebere nke ọma yana NJ azụmahịa na-adịgide adịgide. Naanị ghọta isi ihe a ka ịghọta omume Postgres.
Anyị na-aga n'ihu na ngalaba nke atọ. N'ebe a, anyị ga-agafe ụdị mkpọchi dị iche iche na Postgres. Ọ naghị adọrọ mmasị. Akụkụ ikpeazụ ga-adọrọ mmasị karị. Ma anyị aghaghị ịtụle ihe ndị bụ isi, n'ihi na ma ọ bụghị ya, anyị agaghị aghọta ihe ga-eme n'ọdịnihu.
Anyị ga-agafe na ngalaba a, anyị ga-eleba anya n'ụdị mkpọchi ọ bụla. Aga m egosi gị ihe atụ nke otu esi etinye ha, ka ha si arụ ọrụ, m ga-egosi gị ụfọdụ ajụjụ ị nwere ike iji hụ ka mkpọchi si arụ ọrụ na Postgres.
Iji mepụta ajụjụ wee hụ ihe na-eme na Postgres, anyị kwesịrị ịnye ajụjụ ahụ na nlele sistemụ. N'okwu a, a na-eme ka pg_lock pụta ìhè na uhie. Pg_lock bụ tebụl sistemụ na-agwa anyị ihe mkpọchi a na-eji ugbu a na Postgres.
Agbanyeghị, ọ na-esiri m ike igosi gị pg_lock n'onwe ya n'ihi na ọ dị mgbagwoju anya. Yabụ m mepụtara nlele na-egosi pg_locks. Ọ na-arụkwara m ọrụ ụfọdụ na-enye m ohere ịghọta nke ọma. Ya bụ, ọ na-ewepu m mkpọchi, nke m nnọkọ, wdg Ọ bụ naanị ọkọlọtọ SQL na ọ na-enye gị ohere ka mma na-egosi gị ihe na-eme.
Nsogbu ọzọ bụ na echiche a dị obosara nke ukwuu, yabụ na m ga-emepụta nke abụọ - lockview2.
Ọ na-egosikwa m ogidi ndị ọzọ site na tebụl. Na ọzọ nke na-egosi m ndị fọdụrụ na ogidi. Nke a dị nnọọ mgbagwoju anya, yabụ m gbalịrị iwepụta ya dị ka o kwere mee.
Ya mere, anyị mepụtara tebụl a na-akpọ Lockdemo. Na anyị kere otu ahịrị n'ebe ahụ. Nke a bụ tebụl nlele anyị. Ma anyị ga-eke ngalaba naanị iji gosi gị ọmụmaatụ nke mkpọchi.
Yabụ, otu ahịrị, otu kọlụm. Ụdị mkpọchi nke mbụ ka a na-akpọ ACCESS SHARE. Nke a bụ mgbochi kacha nta. Nke a pụtara na ọ fọrọ nke nta ka ọ ghara ịlụ ọgụ na mkpọchi ndị ọzọ.
Ma ọ bụrụ na anyị chọrọ ịkọwapụta mkpọchi n'ụzọ doro anya, anyị na-agba "mkpọchi tebụl" iwu. O doro anya na ọ ga-egbochi, ya bụ na ACCESS SHARE mode anyị na-ebunye tebụl mkpọchi. Ma ọ bụrụ na m na-agba ọsọ PSQL n'azụ, m na-amalite nnọkọ nke abụọ site na nnọkọ mbụ m n'ụzọ dị otú a. Ya bụ, gịnị ka m ga-eme ebe a? M na-aga nnọkọ ọzọ wee sị ya "gosi m mkpọchi maka arịrịọ a." Ma ebe a ka m nwere AccessShareLock na tebụl a. Nke a bụ kpọmkwem ihe m rịọrọ. O wee sị na e kenyela ngọngọ ahụ. Dị mfe.
Ọzọkwa, ọ bụrụ na anyị elee anya na kọlụm nke abụọ, mgbe ahụ ọ dịghị ihe ọ bụla. Ha tọgbọrọ chakoo.
Ma ọ bụrụ na m agbaa iwu "SELECT", nke a bụ ụzọ doro anya (nke doro anya) iji rịọ AccessShareLock. Ya mere, ana m ahapụ tebụl m wee mee ajụjụ ahụ, ajụjụ ahụ weghachite ọtụtụ ahịrị. Na otu ahịrị anyị na-ahụ AccessShareLock. Ya mere, SELECT na-akpọ AccessShareLock na tebụl. Ọ naghị emegidekwa ihe ọ bụla n'ihi na ọ bụ mkpọchi dị ala.
Kedu ihe ma ọ bụrụ na m na-agba ọsọ SELECT ma nwee tebụl atọ dị iche iche? Na mbụ, naanị m na-agba otu tebụl, ugbu a, m na-agba ọsọ atọ: pg_class, pg_namespace na pg_attribute.
Ma ugbu a, mgbe m lere ajụjụ ahụ, a na m ahụ 9 AccessShareLocks na tebụl atọ. Gịnị kpatara? E gosiputara tebụl atọ na-acha anụnụ anụnụ: pg_attribute, pg_class, pg_namespace. Mana ị nwekwara ike ịhụ na index niile akọwapụtara site na tebụl ndị a nwekwara AccessShareLock.
Na nke a bụ mkpọchi nke na-anaghị emegide ndị ọzọ. Na ihe ọ na-eme bụ nanị igbochi anyị ịtọgharịa tebụl ka anyị na-ahọrọ ya. O nwere ezi uche. Ya bụ, ọ bụrụ na anyị họrọ tebụl, ọ na-apụ n'anya n'oge ahụ, mgbe ahụ nke a adịghị mma, ya mere AccessShare bụ mkpọchi ọkwa dị ala nke na-agwa anyị "dobela tebụl a mgbe m na-arụ ọrụ". N'ezie, nke ahụ bụ naanị ihe ọ na-eme.
ROW SHARE - Mkpọchi a dịtụ iche.
Ka anyị were ihe atụ. Họrọ usoro nkesa ahịrị maka igbachi ahịrị ọ bụla n'otu n'otu. N'ụzọ dị otú a, ọ dịghị onye nwere ike ihichapụ ha ma ọ bụ gbanwee ha mgbe anyị na-ekiri ha.
Kedu ihe SHARE LOCK na-eme? Anyị na-ahụ na ID azụmahịa bụ 681 maka SELECT. Na nke a na-adọrọ mmasị. Gịnị mere ebe a? Oge mbụ anyị na-ahụ ọnụọgụgụ dị na mpaghara "Mkpọchi". Anyị na-ewere ID azụmahịa wee kwuo na ọ na-egbochi ya na ọnọdụ pụrụ iche. Naanị ihe ọ na-eme bụ na ọ na-ekwu na enwere m ahịrị nke ejiri teknụzụ kpọchie ebe na tebụl. Mana o kwughị ebe kpọmkwem. Anyị ga-elele nke a n'ụzọ zuru ezu obere oge ma emechaa.
N'ebe a, anyị na-ekwu na ọ bụ anyị na-eji mkpọchi.
Yabụ, mkpọchi pụrụ iche na-ekwu hoo haa na ọ bụ naanị ya. Na kwa ma ọ bụrụ na ihichapụ ahịrị na tebụl a, nke a bụ ihe ga-eme, dị ka ị pụrụ ịhụ.
SHARE EXCLUSIVE bụ mkpọchi ogologo.
Nke a bụ iwu nyocha (ANALYZE) nke a ga-eji.
Mkpọchi Ekekọrịta – ị nwere ike igbachi nke ọma na ọnọdụ òkè.
Ị nwekwara ike ịmepụta ndetu pụrụ iche. Na ebe ị nwere ike ịhụ SHARE LOCK, nke bụ akụkụ nke ha. Ọ na-akpọchikwa tebụl ahụ ma tinye Mkpọchi SHARE na ya.
Na ndabara, SHARE LOCK na tebụl pụtara na ndị ọzọ nwere ike ịgụ tebụl, mana ọ nweghị onye nwere ike gbanwee ya. Na nke a bụ kpọmkwem ihe na-eme mgbe ị mepụtara ndeksi pụrụ iche.
Ọ bụrụ na m mepụta index pụrụ iche n'otu oge, mgbe ahụ, m ga-enwe ụdị mkpọchi dị iche n'ihi na, dị ka ị na-echeta, iji ndenye n'otu oge na-ebelata ihe mkpuchi chọrọ. Ma ọ bụrụ na m na-eji mkpọchi nkịtị, ihe ntanetị nkịtị, mgbe ahụ, m ga-eme ka ọ ghara ịde ederede na tebụl mgbe a na-emepụta ya. Ọ bụrụ na m na-eji ndenye aha n'otu oge, mgbe ahụ ọ dị m mkpa iji ụdị mkpọchi dị iche.
Ekekọrịta ahịrị pụrụ iche - ọzọ enwere ike ịtọ ya nke ọma (nke doro anya).
Ma ọ bụ anyị nwere ike ịmepụta iwu, ya bụ, buru otu ikpe a ga-eji mee ihe.
Mkpọchi pụrụ iche pụtara na ọ dịghị onye ọzọ nwere ike ịgbanwe tebụl.
N'ebe a, anyị na-ahụ ụdị mkpọchi dị iche iche.
ACCESS EXCLUSIVE, dịka ọmụmaatụ, bụ iwu igbochi. Dịka ọmụmaatụ, ọ bụrụ na ị na-eme ya CLUSTER table
, mgbe ahụ nke a ga-apụta na ọ dịghị onye ga-enwe ike ide ebe ahụ. Ma ọ na-akpọchi ọ bụghị naanị tebụl n'onwe ya, kamakwa indexes.
Nke a bụ ibe nke abụọ nke mgbochi ACCESS EXCLUSIVE, ebe anyị na-ahụ kpọmkwem ihe ọ gbochiri na tebụl. Ọ na-akpọchi ahịrị tebụl nke ọ bụla, nke na-atọ ụtọ nke ukwuu.
Nke ahụ bụ ozi bụ isi m chọrọ inye. Anyị na-ekwu maka mkpọchi, gbasara NJ azụmahịa, anyị kwuru maka NJ azụmahịa mebere, gbasara NJ azụmahịa na-adịgide adịgide.
Ma ugbu a, anyị ga-aga site ụfọdụ ngọngọ atụ. Nke a bụ akụkụ kacha adọrọ mmasị. Anyị ga-eleba anya n'okwu ndị na-adọrọ mmasị. Na ebumnuche m na ngosi a bụ inye gị nghọta ka mma nke ihe Postgres na-eme n'ezie mgbe ọ na-agbalị igbochi ụfọdụ ihe. Echere m na ọ mara oke mma na igbochi akụkụ.
Ka anyị leba anya n’ihe atụ ụfọdụ kpọmkwem.
Anyị ga-amalite na tebụl na otu ahịrị na tebụl. Mgbe m tinyere ihe m nwere ExclusiveLock, ID azụmahịa na ExclusiveLock gosipụtara na tebụl.
Kedu ihe ga-eme ma m tinye ahịrị abụọ ọzọ? Ma ugbu a tebụl anyị nwere ahịrị atọ. M wee tinye otu ahịrị wee nweta nke a dị ka mmepụta. Ma ọ bụrụ na m tinye ahịrị abụọ ọzọ, kedu ihe dị ịtụnanya gbasara nke ahụ? Enwere m ihe dị egwu ebe a n'ihi na etinyere m ahịrị atọ na tebụl a, mana m ka nwere ahịrị abụọ na tebụl mkpọchi. Ma nke a bụ n'ụzọ bụ isi omume nke Postgres.
Ọtụtụ ndị mmadụ na-eche na ọ bụrụ na n'ime nchekwa data ị kpọchiri ahịrị 100, mgbe ahụ ị ga-achọ ịmepụta ntinye mkpọchi 100. Ọ bụrụ na m egbochie ahịrị 1 n'otu oge, m ga-achọ ajụjụ 000 dị otú ahụ. Ma ọ bụrụ na achọrọ m otu nde ma ọ bụ ijeri iji gbochie. Mana ọ bụrụ na anyị emee nke a, ọ gaghị arụ ọrụ nke ọma. Ọ bụrụ na ị na-ejila usoro nke na-emepụta ntinye mgbochi maka ahịrị onye ọ bụla, ị ga-ahụ na nke a gbagwojuru anya. N'ihi na ịkwesịrị ịkọwapụta tebụl mkpọchi ozugbo nke nwere ike ịfesa, mana Postgres anaghị eme nke ahụ.
Na ihe dị mkpa n'ezie banyere slide a bụ na ọ na-egosi n'ụzọ doro anya na e nwere usoro ọzọ na-agba ọsọ n'ime MVCC na-akpọchi onye ahịrị. Yabụ mgbe ị kpọchiri ọtụtụ ijeri ahịrị, Postgres anaghị emepụta iwu mkpọchi dị iche iche ijeri. Na nke a nwere mmetụta dị mma na mmepụta ihe.
Kedu maka mmelite? Ana m emelite ahịrị ugbu a, ị ga-ahụ na ọ rụrụ ọrụ abụọ dị iche iche n'otu oge. Ọ kpọchiri tebụl n'otu oge, ma ọ kpọchirikwa ndepụta ndeksi. Na ọ dị mkpa ka ọ kpọchie ndeksi n'ihi na enwere ihe mgbochi pụrụ iche na tebụl a. Na anyị chọrọ ijide n'aka na ọ dịghị onye na-agbanwe ya, ya mere anyị na-egbochi ya.
Kedu ihe ga - eme ma ọ bụrụ na achọrọ m imelite ahịrị abụọ? Anyị na-ahụkwa na ọ na-akpa àgwà otú ahụ. Anyị na-eme mmelite ugboro abụọ, mana otu ọnụọgụ ahịrị mkpọchi.
Ọ bụrụ na ị na-eche ka Postgres si eme nke a, ị ga-achọ ige ntị n'okwu m na MVCC ka ị mụta ka Postgres si akọwa ahịrị ndị a ka ọ na-agbanwe. Na Postgres nwere ụzọ ọ na-esi eme nke a, mana ọ naghị eme ya na ọkwa mkpọchi okpokoro, ọ na-eme ya na ọkwa dị ala na nke ọma.
Gịnị ma ọ bụrụ na m chọrọ ihichapụ ihe? Ọ bụrụ na m ihichapụ, dịka ọmụmaatụ, otu ahịrị na m ka nwere ntinye mgbochi abụọ m, na ọ bụrụgodị na achọrọ m ihichapụ ha niile, ha ka nọ.
Ma, dịka ọmụmaatụ, achọrọ m itinye ahịrị 1, wee kpochapụ ma ọ bụ tinye ahịrị 000, mgbe ahụ ahịrị ndị ahụ m gbakwunyere ma ọ bụ gbanwee, anaghị edekọ ha ebe a. Edere ha na ọkwa dị ala n'ime usoro n'onwe ya. Na n'oge okwu MVCC m kwuru banyere nke a n'ụzọ zuru ezu. Mana ọ dị ezigbo mkpa mgbe ị na-enyocha mkpọchi iji jide n'aka na ị na-ekpochi na tebụl na ị naghị ahụ ka esi edekọ ahịrị ndị mmadụ n'otu n'otu ebe a.
Kedu maka igbochi nke ọma?
Ọ bụrụ na m pịa ume ọhụrụ, enwere m ahịrị abụọ akpọchiri. Ma ọ bụrụ na m họrọ ha niile wee pịa "mmelite n'ebe niile," mgbe ahụ m ka nwere ihe ndekọ abụọ na-egbochi.
Anyị anaghị emepụta ndekọ dị iche iche maka ahịrị onye ọ bụla. N'ihi na mgbe ahụ arụpụtaghị ihe na-adaba, enwere ike ịdị ukwuu nke ya. Anyị pụkwara ịchọta onwe anyị n'ọnọdụ na-adịghị mma.
Na otu ihe ahụ, ọ bụrụ na anyị na-ekekọrịta, anyị nwere ike ime ya niile ugboro 30.
Anyị na-eweghachite tebụl anyị, hichapụ ihe niile, wee tinye otu ahịrị ọzọ.
Omume ọzọ ị na-ahụ na Postgres nke a maara nke ọma na omume achọrọ bụ na ị nwere ike ime mmelite ma ọ bụ họrọ. Ị nwere ike ime nke a n'otu oge ahụ. Na họrọ anaghị egbochi mmelite na otu ihe ahụ n'akụkụ nke ọzọ. Anyị na-agwa onye na-agụ ya ka ọ ghara igbochi onye edemede, ma onye edemede egbochighị onye na-agụ ya.
Aga m egosi gị ihe atụ nke a. M ga-eme nhọrọ ugbu a. Anyị ga-eme INSERT. Ma mgbe ahụ ị nwere ike ịhụ - 694. Ị nwere ike ịhụ ID nke azụmahịa ahụ mere ntinye a. Ma otu ahụ ka ọ na-arụ ọrụ.
Ma ọ bụrụ na m lelee ID azụ azụ m ugbu a, ọ bụ 695 ugbu a.
Enwere m ike ịhụ 695 na-apụta na tebụl m.
Ma ọ bụrụ na m emelite ebe a dị ka nke a, m ga-enweta ikpe dị iche. N'okwu a, 695 bụ mkpọchi pụrụ iche, na mmelite nwere otu omume ahụ, mana enweghị esemokwu n'etiti ha, nke bụ ihe pụrụ iche.
Ị nwere ike ịhụ na n'elu ọ bụ ShareLock, na na ala ọ bụ ExclusiveLock. Ma azụmahịa abụọ a rụpụtara.
Na mkpa ka ị na-ege ntị okwu m na MVCC ịghọta otú nke a na-eme. Mana nke a bụ ihe atụ na ị nwere ike ime ya n'otu oge, ya bụ, mee Nhọrọ na mmelite n'otu oge.
Ka anyị tọgharịa wee mee otu ọrụ ọzọ.
Ọ bụrụ na ị nwaa ịme mmelite abụọ n'otu oge n'otu ahịrị, a ga-egbochi ya. Chetakwa na m kwuru na onye na-agụ anaghị egbochi onye edemede, na onye na-ede akwụkwọ anaghị egbochi onye na-agụ ya, ma otu onye edemede na-egbochi onye edemede ọzọ. Ya bụ, anyị enweghị ike imelite mmadụ abụọ n'otu ahịrị n'otu oge. Ị ga-echere ruo mgbe otu n'ime ha gwụchara.
Na iji gosi nke a, m ga-ele anya na tebụl Lockdemo. Ma anyị ga-ele anya n'otu ahịrị. Kwa azụmahịa 698.
Anyị emelitere nke a na 2. 699 bụ mmelite mbụ. Ma ọ gara nke ọma ma ọ bụ na ọ bụ na azụmahịa na-echere ma na-echere anyị ka anyị kwenye ma ọ bụ kagbuo.
Mana lee ihe ọzọ - 2/51 bụ azụmahịa mbụ anyị, nnọkọ mbụ anyị. 3/112 bụ arịrịọ nke abụọ sitere n'elu nke gbanwere uru ahụ na 3. Ma ọ bụrụ na ị chọpụta, nke elu kpọchiri onwe ya, nke bụ 699. Ma 3/112 enyeghị mkpọchi ahụ. Kọlụm Lock_mode na-ekwu ihe ọ na-eche. Ọ na-atụ anya 699. I leekwa ebe 699 nọ, ọ dị elu. Gịnịkwa ka nnọkọ nke mbụ mere? O mepụtara mkpọchi pụrụiche na NJ azụmahịa nke ya. Nke a bụ otú Postgres si eme ya. Ọ na-egbochi ID azụmahịa nke ya. Ma ọ bụrụ na ịchọrọ ichere ka mmadụ kwenye ma ọ bụ kagbuo, mgbe ahụ ịkwesịrị ichere mgbe enwere azụmahịa na-echere. Ya mere anyị nwere ike ịhụ ahịrị iju.
Ka anyị leba anya ọzọ. N'aka ekpe anyị na-ahụ ID nhazi anyị. Na kọlụm nke abụọ anyị na-ahụ ID azụmahịa anyị mebere, na nke atọ anyị na-ahụ lock_type. Kedu ihe nke a pụtara? N'ezie ihe ọ na-ekwu bụ na ọ na-egbochi ID azụmahịa. Mana rịba ama na ahịrị niile dị n'okpuru na-ekwu njikọ. Ya mere, ị nwere ụdị mkpọchi abụọ na tebụl. Enwere mkpọchi mmekọrịta. Ma mgbe ahụ, e nwere ihe mgbochi azụmahịa, ebe ị na-egbochi onwe gị, nke bụ kpọmkwem ihe na-eme n'ahịrị mbụ ma ọ bụ na ala ala, ebe azụmahịa ahụ dị, ebe anyị chere 699 ka ọ rụchaa ọrụ ya.
Aga m ahụ ihe na-eme ebe a. Na ebe a ihe abụọ na-eme n'out oge. Ị na-elele mkpọchi ID azụmahịa n'ahịrị nke mbụ na-akpọchi onwe ya. Ọ na-egbochikwa onwe ya ime ka ndị mmadụ chere.
Ọ bụrụ na ị lelee ahịrị 6, ọ bụ otu ntinye dị ka nke mbụ. Ya mere a na-egbochi azụmahịa 699. 700 na-agbachikwa onwe ya. Mgbe ahụ n'ahịrị nke ala ị ga-ahụ na anyị na-eche 699 ka ọ rụchaa ọrụ ya.
Na lock_type, tuple ị na-ahụ nọmba.
Ị nwere ike ịhụ na ọ bụ 0/10. Na nke a bụ nọmba ibe, yana kwa nkwụsị nke ahịrị a.
Na ị na-ahụ na ọ na-aghọ 0/11 mgbe anyị imelite.
Ma n'eziokwu ọ bụ 0/10, n'ihi na a na-echere ọrụ a. Anyị nwere ohere ịhụ na nke a bụ usoro nke m na-eche iji gosi.
Ozugbo anyị kwadoro ya wee pịa tinye, na mgbe emelitere, nke a bụ ihe anyị na-enweta ọzọ. Azụmahịa 700 bụ naanị mkpọchi, ọ naghị echere onye ọzọ n'ihi na emere ya. Ọ na-eche naanị ka azụmahịa ahụ mezue. Ozugbo 699 gwụchara, anyị anaghị echere ihe ọ bụla ọzọ. Ma ugbu a, azụmahịa 700 na-ekwu na ihe niile dị mma, na ọ nwere ihe mkpuchi niile ọ chọrọ na tebụl niile a kwadoro.
Na iji mee ka ihe a dum dịkwuo mgbagwoju anya, anyị na-emepụta echiche ọzọ, nke oge a ga-enye anyị ọkwa ọkwa. Anaghị m atụ anya ka ị ghọta arịrịọ a. Ma nke a ga-eme ka anyị ghọtakwuo ihe na-emenụ.
Nke a bụ echiche na-emegharị anya nke nwekwara ngalaba ọzọ. Ma mgbe ahụ ọ na-eweghachite ihe niile ọnụ ọzọ. Ka anyị were nke a.
Kedu ihe ma ọ bụrụ na anyị emelite mmelite ugboro atọ ma kwuo na ahịrị ugbu a bụ atọ. Ma anyị ga-agbanwe 3 ruo 4.
Na ebe a anyị na-ahụ 4. Na azụmahịa ID 702.
Ma mgbe ahụ, m ga-agbanwe 4 gaa na 5. Na 5 gaa na 6, na 6 gaa na 7. M ga-edozi ọtụtụ ndị ga-echere ka otu azụmahịa a kwụsị.
Na ihe niile na-aghọ doro anya. Gịnị bụ ahịrị nke mbụ? Nke a bụ 702. Nke a bụ ID azụmahịa nke setịpụrụ uru a na mbụ. Kedu ihe edere na kọlụm akwadoro m? Enwere m akara f
. Ndị a bụ mmelite m nke (5, 6, 7) enweghị ike ịkwado n'ihi na anyị na-eche ID 702 azụmahịa ka ọ kwụsị. N'ebe ahụ, anyị nwere igbochi ID azụmahịa. Nke a na-ebute mkpọchi ID azụmahịa 5.
Ma ọ bụrụ na ị na-ele anya na 704, na 705, ọ dịghị ihe e dere n'ebe ahụ, n'ihi na ha amaghị ihe na-eme. Ha na-ede nanị na ha amaghị ihe na-emenụ. Ha ga-arahụkwa naanị n’ihi na ha na-eche ka mmadụ gụchaa ma teta n’ụra mgbe enwere ohere ịgbanwe ahịrị.
Nke a bụ otú ọ dị. O doro anya na ha niile na-echere ahịrị nke iri na abụọ.
Nke a bụ ihe anyị hụrụ ebe a. Nke a bụ 0/12.
Yabụ ozugbo akwadoro azụmahịa mbụ, ị ga-ahụ ebe a ka ndị isi na-arụ ọrụ. Ma ugbu a, ihe niile na-apụta ìhè. Ha niile na-adị ọcha. Ma ha ka na-eche n'ezie.
Nke a bụ ihe na-eme. 702 kwadoro. Ma ugbu a 703 na-enweta mkpọchi ahịrị a, mgbe ahụ 704 malitere ichere 703 ime. Na 705 na-eche nke a kwa. Ma mgbe ihe a nile mezuru, ha na-asachapụ onwe ha. Ọ ga-amasị m igosi na onye ọ bụla na-agba n'ahịrị. Na nke a yiri nnọọ ọnọdụ na a okporo ụzọ nkpọk mgbe onye ọ bụla na-eche mbụ ụgbọ ala. Ụgbọ ala mbụ na-akwụsị ma onye ọ bụla kwụ n'ahịrị n'ahịrị ogologo. Mgbe ahụ, ọ na-agagharị, mgbe ahụ ụgbọ ala ọzọ nwere ike ịnya n'ihu wee nweta ngọngọ ya, wdg.
Ma ọ bụrụ na nke a eyighị gị mgbagwoju anya, mgbe ahụ, anyị ga-agwa gị ugbu a banyere deadlocks. Amaghị m onye n'ime unu zutere ha. Nke a bụ nsogbu a na-ahụkarị na sistemụ nchekwa data. Mana ihe mgbochi bụ mgbe otu nnọkọ na-eche nnọkọ ọzọ iji mee ihe. Ma n'oge a nnọkọ ọzọ na-echere nnọkọ nke mbụ iji mee ihe.
Ma, dị ka ihe atụ, ọ bụrụ na Ivan asị: “Nye m ihe,” m na-asị: “Ee e, m ga-enye gị ya ma ọ bụrụ na i nye m ihe ọzọ.” Ma ọ sịrị, "Ee e, agaghị m enye gị ya ma ọ bụrụ na ị nyeghị m ya." Na anyị na-ejedebe n'ọnọdụ adịghị agwụ agwụ. Eji m n'aka na Ivan agaghị eme nke a, ma ị ghọtara ihe ọ pụtara na anyị nwere mmadụ abụọ chọrọ inweta ihe na ha adịghị njikere inye ya ruo mgbe onye nke ọzọ nyere ha ihe ha chọrọ. Ọ dịghịkwa ngwọta adịghị.
Na n'ezie, nchekwa data gị kwesịrị ịchọpụta nke a. Ma mgbe ahụ ịkwesịrị ihichapụ ma ọ bụ mechie otu n'ime nnọkọ ahụ, n'ihi na ma ọ bụghị ya, ha ga-anọ ebe ahụ ruo mgbe ebighị ebi. Na anyị na-ahụ ya na ọdụ data, anyị na-ahụ ya na sistemụ arụmọrụ. Na ebe niile anyị nwere usoro ndị yiri ya, nke a nwere ike ime.
Ma ugbu a, anyị ga-wụnye deadlocks abụọ. Anyị ga-etinye 50 na 80. N'ahịrị nke mbụ, m ga-emelite site na 50 ruo 50. Aga m enweta nọmba azụmahịa 710.
Ma mgbe ahụ, m ga-agbanwe 80 gaa na 81, na 50 gaa na 51.
Na nke a bụ otú ọ ga-adị. Ya mere, 710 nwere ahịrị egbochiri, na 711 na-echere nkwenye. Anyị hụrụ nke a mgbe anyị melitere. 710 bụ onye nwe usoro anyị. Na 711 na-echere 710 iji mezue azụmahịa ahụ.
Ma ọ na-ekwu ọbụna n'ahịrị nke ndị nwụrụ anwụ mere. Na ebe a bụ ebe ọ na-amalite na-iche.
Ugbu a, anyị na-emelite 80 ruo 80.
Na nke a bụ ebe ndị nwụrụ anwụ na-amalite. 710 na-eche nzaghachi sitere na 711, na 711 na-echere 710. Nke a agaghị akwụsị nke ọma. Ọ dịghịkwa ụzọ isi na nke a pụta. Ha ga-atụkwa anya nzaghachi n'aka ibe ha.
Ọ ga-amalitekwa igbu oge ihe niile. Anyị achọghịkwa nke ahụ.
Na Postgres nwere ụzọ iji mara mgbe nke a mere. Ma mgbe nke a mere, ị ga-enweta njehie a. Na site na nke a, o doro anya na usoro dị otú ahụ na nke dị otú ahụ na-echere SHARE LOCK site na usoro ọzọ, ya bụ, nke na-egbochi usoro 711. Na usoro ahụ na-echere ka a na-enye LOCK SHARE na ID azụmahịa dị otú ahụ ma gbochie ya site na usoro dị otú ahụ. Ya mere, enwere ọnọdụ nkwụsị ebe a.
Enwere mkpọchi ụzọ atọ? Ọ ga-ekwe omume? Ee.
Anyị na-etinye nọmba ndị a na tebụl. Anyị na-agbanwe 40 ruo 40, anyị na-egbochi.
Anyị na-agbanwe 60 ruo 61, 80 ruo 81.
Na mgbe ahụ, anyị na-agbanwe 80 na mgbe ọganihu!
Na 714 na-eche ugbu a 715. Nke 716 na-eche 715th. Ọ dịghịkwa ihe a pụrụ ime banyere ya.
Enweghịzị mmadụ abụọ ebe a, mmadụ atọ adịlarị ebe a. Achọrọ m ihe n'aka gị, nke a chọrọ ihe n'aka onye nke atọ, na onye nke atọ chọrọ ihe n'aka m. Anyị na-echerekwa ụzọ atọ n'ihi na anyị niile na-eche ka onye nke ọzọ rụchaa ihe ọ chọrọ ime.
Na Postgres maara n'ahịrị nke a na-eme. Ya mere ọ ga-enye gị ozi na-esonụ, nke na-egosi na ị nwere nsogbu ebe ntinye atọ na-egbochi ibe gị. Na enweghị mgbochi ebe a. Nke a nwere ike ịbụ ikpe ebe ndenye 20 na-egbochi ibe ha.
Nsogbu na-esote bụ serializable.
Ọ bụrụ na mkpọchi serializable pụrụ iche.
Anyi laghachikwa na 719. Omuputa ya di nma.
Na ị nwere ike pịa ime ka azụmahịa si serializable.
Ma ị ghọtara na ị nwere ụdị mkpọchi SA dị iche - ọ pụtara serializable.
Ya mere, anyị nwere ụdị mkpọchi ọhụrụ a na-akpọ SArieadLock, nke bụ mkpọchi serial na-enye gị ohere ịbanye usoro.
Na kwa ị nwere ike itinye ndenye aha pụrụ iche.
N'ime tebụl a, anyị nwere ndepụta ntụaka pụrụ iche.
Ya mere, ọ bụrụ na m tinye nọmba 2 ebe a, n'ihi ya enwere m 2. Ma n'elu elu, m na-etinye 2 ọzọ na ị nwere ike ịhụ na 721 nwere mkpọchi pụrụ iche. Mana ugbu a 722 na-eche 721 ka ọ rụchaa ọrụ ya n'ihi na ọ nweghị ike itinye 2 ruo mgbe ọ matara ihe ga-eme 721.
Ma ọ bụrụ na anyị na-eme subtransaction.
Anyị nwere 723.
Ma ọ bụrụ na anyị echekwa isi ihe wee melite ya, mgbe ahụ, anyị ga-enweta ID azụmahịa ọhụrụ. Nke a bụ ụkpụrụ omume ọzọ ị kwesịrị ịma. Ọ bụrụ na anyị weghachi nke a, mgbe ahụ ID azụmahịa na-apụ. 724 na-apụ. Mana ugbu a anyị nwere 725.
Yabụ kedu ihe m na-agbalị ime ebe a? Ana m agbalị igosi gị ihe atụ nke mkpọchi pụrụ iche nke ị nwere ike ịhụ: ma ọ bụ mkpọchi serializable ma ọ bụ SAVEPOINT, ndị a bụ ụdị mkpọchi dị iche iche ga-apụta na tebụl mkpọchi.
Nke a bụ imepụta mkpọchi doro anya (nke doro anya), nke nwere pg_advisory_lock.
Ma ị na-ahụ na e depụtara ụdị mgbochi ahụ dị ka ndụmọdụ. Na ebe a ọ na-ekwu "ndụmọdụ" na-acha uhie uhie. Ị nwere ike igbochi otu a site na pg_advisory_unlock.
Na n'ikpeazụ, a ga m achọ igosi gị otu ihe na-akụda mmụọ ọzọ. M ga-emepụta echiche ọzọ. Mana m ga-esonye na pg_locks table na pg_stat_activity table. Gịnịkwa mere m ji chọọ ime nke a? N'ihi na nke a ga-enyere m aka ile anya ma hụ nnọkọ niile dị ugbu a ma hụ kpọmkwem ụdị mkpọchi ha na-echere. Na nke a na-adọrọ mmasị nke ukwuu mgbe anyị na-ejikọta tebụl mkpọchi na tebụl ajụjụ.
Ma ebe a anyị mepụtara pg_stat_view.
Na anyị na-emelite ahịrị otu. Leekwa ka anyị hụ 724. Anyị emelite ahịrị anyị ka atọ. Gịnịkwa ka ị na-ahụ ebe a ugbu a? Ndị a bụ arịrịọ, ya bụ, ị na-ahụ ndepụta arịrịọ niile edepụtara na kọlụm aka ekpe. Na mgbe ahụ n'akụkụ aka nri ị nwere ike ịhụ ihe mgbochi na ihe ha na-emepụta. Ma ọ nwere ike ịpụta ìhè karịa gị ka ị ghara ịlaghachi na nnọkọ ọ bụla oge ọ bụla wee hụ ma ọ dị mkpa ka ị sonyere ya ma ọ bụ na ị gaghị. Ha na-emere anyị ya.
Akụkụ ọzọ bara uru nke ukwuu bụ pg_blocking_pids
. Ma eleghị anya, ị nụtụbeghị banyere ya. Gịnị ka ọ na-eme? Ọ na-enye anyị ohere ịgwa na maka nnọkọ a 11740 ihe kpọmkwem usoro NJ ọ na-eche. Ị ga-ahụkwa na 11740 na-echere 724. na 724 nọ n'elu. Na 11306 bụ NJ usoro gị. N'ezie, ọrụ a na-aga site na tebụl mkpọchi gị. Amakwa m na ọ dị ntakịrị mgbagwoju anya, mana ị jisiri ike ghọta ya. N'ezie, ọrụ a na-aga site na tebụl mkpọchi a wee gbalịa ịchọta ebe a na-enye NJ usoro a mkpọchi ọ na-eche. Ọ na-agbalịkwa ịchọpụta nke usoro ID usoro nke na-echere mkpọchi nwere. Yabụ ị nwere ike rụọ ọrụ a pg_blocking_pids
.
Na nke a nwere ike ịba uru nke ukwuu. Naanị anyị gbakwunyere nke a na ụdị 9.6, yabụ njirimara a dị naanị afọ 5, mana ọ bara ezigbo uru. Na otu ihe ahụ metụtara arịrịọ nke abụọ. Ọ na-egosi kpọmkwem ihe anyị kwesịrị ịhụ.
Nke a bụ ihe m chọrọ ịgwa gị okwu. Ma dị ka m tụrụ anya ya, anyị ji oge anyị niile mee ihe n’ihi na e nwere ọtụtụ ihe nkiri slide. Na slide ndị dị maka nbudata. Ọ ga-amasị m ikele gị maka ịnọ ebe a. Eji m n’aka na ị ga-anụ ụtọ ọgbakọ ndị ọzọ, daalụ nke ukwuu!
Ajụjụ:
Dịka ọmụmaatụ, ọ bụrụ na m na-agbalị imelite ahịrị, na nnọkọ nke abụọ na-agbalị ihichapụ tebụl dum. Dị ka m ghọtara, ekwesịrị inwe ihe dịka mkpọchi ebumnuche. Enwere ihe dị otú ahụ na Postgres?
Ka anyị laghachi azụ na mmalite. Ị nwere ike icheta na mgbe ị na-eme ihe ọ bụla, dịka ọmụmaatụ mgbe ị na-eme Nhọrọ, anyị na-enye AccessShareLock. Na nke a na-egbochi tebụl ka a ghara ịdaba. Yabụ ọ bụrụ na ị, dịka ọmụmaatụ, chọrọ imelite ahịrị na tebụl ma ọ bụ hichapụ ahịrị, mgbe ahụ mmadụ enweghị ike ihichapụ tebụl ahụ n'otu oge n'ihi na ị na-ejide AccessShareLock a n'elu tebụl dum yana n'elu ahịrị. Ma ozugbo ịmechara, ha nwere ike ihichapụ ya. Ma ka ị na-agbanwe ihe ozugbo ebe ahụ, ha agaghị enwe ike ime ya.
Ka anyị mee ya ọzọ. Ka anyị gaa n'ihu na ihe atụ ihichapụ. Na ị na-ahụ ka e nwere nanị mkpọchi n'ahịrị n'elu dum table.
Nke a ga-adị ka mkpọchi naanị, nri?
Ee, ọ dị ka ya. Aghọtara m ihe ị na-ekwu. Ị na-ekwu na ọ bụrụ na m eme SELECT mgbe ahụ enwere m ShareExclusive wee mee ya Row Exclusive, nke ahụ ọ na-aghọ nsogbu? Mana ọ dị nwute na nke a anaghị ebute nsogbu. Nke a dị ka ịbawanye ogo mkpọchi, mana n'ezie enwere m mkpọchi na-egbochi ihichapụ. Ma ugbu a, mgbe m na-eme ka mkpọchi a dịkwuo ike, ọ ka na-egbochi ihichapụ. Ya mere, ọ dịghị ka m na-agbago. Ya bụ, ọ gbochiri ya ime mgbe ọ nọkwa na ọkwa dị ala, yabụ mgbe m buliri ọkwa ya, ọ ka na-egbochi ihichapụ tebụl ahụ.
Aghọtara m ihe ị na-ekwu. Enweghị mkpọchi escalation ebe a, ebe ị na-agbalị ịhapụ otu mkpọchi iji webata nke siri ike. N'ebe a, ọ na-abawanye mgbochi a n'ofe osisi, n'ihi ya, ọ naghị akpata esemokwu ọ bụla. Mana ọ bụ ajụjụ dị mma. Daalụ nke ukwuu maka ịjụ nke a!
Kedu ihe anyị kwesịrị ime iji zere ọnọdụ nkwụsị mgbe anyị nwere ọtụtụ nnọkọ, ọnụ ọgụgụ buru ibu nke ndị ọrụ?
Postgres na-achọpụta ọnọdụ akpọchi na-akpaghị aka. Ọ ga-ehichapụ otu nnọkọ ahụ ozugbo. Nanị ụzọ ị ga-esi zere igbochi ndị nwụrụ anwụ bụ igbochi ndị mmadụ n'otu usoro. Ya mere, mgbe ị na-ele gị ngwa, mgbe mgbe ihe mere deadlocks ... Ka anyị were ya na m chọrọ igbochi abụọ dị iche iche ihe. Otu ngwa na-akpọchi tebụl 1, ngwa ọzọ na-akpọchi 2, wee tebụl 1. Ụzọ kachasị mfe iji zere mkpọchi anwụ bụ ileba anya na ngwa gị ma gbalịa hụ na mkpọchi ahụ na-eme n'otu usoro n'ofe ngwa niile. Na nke a na-ewepụkarị 80% nke nsogbu, n'ihi na ụdị mmadụ niile na-ede ngwa ndị a. Ma ọ bụrụ na ị na-egbochi ha n'otu usoro, mgbe ahụ, ị gaghị ezute a deadlock ọnọdụ.
Daalụ nke ukwuu maka arụmọrụ gị! Ị na-ekwu maka agụụ zuru ezu na, ọ bụrụ na m ghọtara nke ọma, agụụ zuru ezu na-agbagọ usoro ndekọ na nchekwa dị iche iche, n'ihi ya, ha na-edebe ihe ndekọ dị ugbu a na-agbanweghị agbanwe. Kedu ihe kpatara vacuum full na-eji ohere mkpọchi pụrụ iche na gịnị kpatara na ọ na-emegide ọrụ ide?
Nke ahụ bụ ezigbo ajụjụ. Ihe kpatara ya bụ na agụụ zuru ezu na-ewe tebụl. Na anyị na-emepụta ụdị ọhụrụ nke tebụl. Tebụl ahụ ga-adịkwa ọhụrụ. Ọ na-apụta na nke a ga-abụ ụdị tebụl ọhụrụ kpamkpam. Ma nsogbu bụ na mgbe anyị na-eme nke a, anyị agaghị achọ ka ndị mmadụ gụọ ya n'ihi na anyị chọrọ ka ha hụ tebụl ọhụrụ ahụ. Ya mere nke a jikọtara na ajụjụ gara aga. Ọ bụrụ na anyị nwere ike ịgụ ihe n'otu oge, anyị agaghị enwe ike ibugharị ya ma duru ndị mmadụ gaa na tebụl ọhụrụ. Ọ ga-adị anyị mkpa ichere ka onye ọ bụla gụchaa tebụl a, yabụ na ọ bụ n'ezie mkpọchi naanị ọnọdụ.
Anyị na-ekwu naanị na anyị na-akpọchi site na mmalite n'ihi na anyị maara na na njedebe anyị ga-achọ ihe mkpuchi pụrụ iche iji bugharịa onye ọ bụla na nke ọhụrụ. Yabụ na anyị nwere ike idozi nke a. Na anyị na-eme ya otú a na imekotaotuugbo indexing. Mana nke a siri ike karịa ime. Na nke a metụtara nke ukwuu ajụjụ gị gara aga banyere mkpọchi nanị.
Ọ ga-ekwe omume ịgbakwunye oge nkwụsị na Postgres? Na Oracle, enwere m ike, dịka ọmụmaatụ, dee "họrọ imelite" wee chere 50 sekọnd tupu emelite. Ọ dị mma maka ngwa ahụ. Mana na Postgres, achọrọ m ime ya ozugbo ma ghara ichere ma ọlị, ma ọ bụ chere ruo oge ụfọdụ.
Ee, ị nwere ike họrọ oge nkwụsịtụ na mkpọchi gị, na mkpọchi gị. Ịnwekwara ike ịnye iwu enweghị ụzọ, nke ga-... ma ọ bụrụ na ịnweghị ike ịnweta mkpọchi ozugbo. Ya mere, ma oge mkpọchi ma ọ bụ ihe ọzọ ga-enye gị ohere ime nke a. A naghị eme nke a na ọkwa syntactic. A na-eme nke a dị ka mgbanwe na ihe nkesa. Mgbe ụfọdụ enweghị ike iji nke a mee ihe.
Ị nwere ike imepe slide 75?
Ee.
Ma ajụjụ m bụ nke a. Kedu ihe kpatara usoro mmelite abụọ ahụ ji na-atụ anya 703?
Na nke a bụ nnukwu ajụjụ. Aghọtaghị m, n'ụzọ, ihe kpatara Postgres ji eme nke a. Ma mgbe e kere 703, ọ nọ na-atụ anya 702. Ma mgbe 704 na 705 pụtara, ọ dị ka ha amaghị ihe ha na-atụ anya n'ihi na ọ dịghị ihe ọ bụla. Na Postgres na-eme ya n'ụzọ dị otú a: mgbe ị na-enweghị ike ịnweta mkpọchi, ọ na-ede "Gịnị bụ isi nhazi gị?", N'ihi na ị na-echeworị mmadụ. Yabụ na anyị ga-ahapụ ya ka ọ kwụgidere n'ikuku, ọ gaghị emelite ya ma ọlị. Ma gịnị mere ebe a? Ozugbo 702 mechara usoro ahụ na 703 natara mkpọchi ya, usoro ahụ laghachiri azụ. O wee sị na ugbu a anyị nwere mmadụ abụọ na-eche. Mgbe ahụ, ka anyị melite ha ọnụ. Ka anyị gosikwa na ha abụọ na-atụ anya.
Amaghị m ihe kpatara Postgres ji eme nke a. Mana enwere nsogbu akpọrọ f…. Ọ dị m ka nke a abụghị okwu na Russian. Nke a bụ mgbe onye ọ bụla na-echere otu nnukwu ụlọ, ọ bụrụgodị na ndị ọchịchị 20 na-echere nnukwu ụlọ ahụ. Na mberede, ha niile na-eteta n'otu oge. Na onye ọ bụla na-amalite ịgbalị imeghachi omume. Mana usoro a na-eme ka onye ọ bụla na-eche 703. Maka na ha niile na-echere, anyị ga-agbakọta ha niile ozugbo. Ma ọ bụrụ na arịrịọ ọhụrụ ọ bụla pụtara nke ewepụtara mgbe nke a gasịrị, dịka ọmụmaatụ, 707, mgbe ahụ a ga-enwekwa ihe efu ọzọ.
Ma ọ dị m ka a na-eme nke a ka anyị nwee ike ikwu na n'oge a 702 na-echere 703, na ndị niile na-abịa mgbe nke ahụ gasịrị agaghị enwe ihe ọ bụla n'ime ubi a. Ma ozugbo onye nlekọta mbụ hapụrụ, ndị niile na-echere n'oge ahụ tupu mmelite ahụ na-enweta otu akara ahụ. Ya mere, echere m na a na-eme nke a ka anyị nwee ike ịhazi ya ka e wee nye ha iwu nke ọma.
M mgbe niile na-ele nke a dị ka a kama iju onu. N'ihi na ebe a, dịka ọmụmaatụ, anyị anaghị edepụta ha ma ọlị. Ma ọ dị m ka oge ọ bụla anyị na-enye mkpọchi ọhụrụ, anyị na-ele ndị niile na-eche nche anya. Mgbe ahụ, anyị na-agbakọta ha niile. Ma nke ọhụrụ ọ bụla nke na-abata na-abanye n'ahịrị naanị mgbe onye ọzọ mechara nhazi. Ajuju mara mma. Daalụ nke ukwuu maka ajụjụ gị!
Ọ dị m ka ọ bụ ihe ezi uche dị na ya mgbe 705 na-atụ anya 704.
Mana nsogbu ebe a bụ nke a. Teknụzụ, ị nwere ike iteta otu ma ọ bụ nke ọzọ. Ya mere, anyị ga-eteta otu ma ọ bụ nke ọzọ. Ma gịnị na-eme na usoro? Ị nwere ike ịhụ ka 703 nọ n'elu si gbochie ID azụmahịa nke ya. Nke a bụ otú Postgres si arụ ọrụ. Na 703 na-egbochi ya site na ID azụmahịa nke ya, yabụ ọ bụrụ na mmadụ chọrọ ichere, mgbe ahụ, ha ga-echere 703. Na, n'eziokwu, 703 mezue. Ma naanị mgbe emechara ya ka otu n'ime usoro ahụ ga-eteta. Na anyị amaghị ihe kpọmkwem usoro a ga-abụ. Mgbe ahụ, anyị na-edozi ihe niile nke nta nke nta. Ma o doro anya na usoro a na-akpọte mbụ, n'ihi na ọ nwere ike ịbụ nke ọ bụla n'ime usoro ndị a. N'ikpeazụ, anyị nwere onye nhazi oge nke kwuru na anyị nwere ike ịkpọte nke ọ bụla n'ime usoro ndị a. Anyị na-ahọrọ otu na enweghị usoro. N’ihi ya, e kwesịrị ịma ha abụọ n’ihi na anyị nwere ike ịkpọte nke ọ bụla n’ime ha.
Na nsogbu bụ na anyị nwere CP-infinity. Ya mere, o yikarịrị ka anyị nwere ike iteta nke ọzọ. Ma ọ bụrụ na, dịka ọmụmaatụ, anyị kpọtere nke ikpeazụ, anyị ga-echere onye natara ngọngọ ahụ, n'ihi ya, anyị anaghị ekpebi onye a ga-ebu ụzọ kpọte kpọmkwem. Anyị na-emepụta ọnọdụ dị otú ahụ, na usoro ahụ ga-akpọte ha n'usoro n'usoro.
E nwere
isi: www.habr.com