3. Athróga struchtúir nuair a úsáidtear cruinneoga
Tá cásanna speisialta éagsúla ag struchtúr cosúil le crann ordaithe. Déanaimis machnamh orthu siúd a bhfuil luach praiticiúil acu agus muid ag obair le cuideachtaí domhanda.
3.1 Cás speisialta 1. Nód amháin gan brainsí
Is féidir cruinneoga a úsáid ní hamháin mar eagar, ach freisin mar athróga rialta. Mar shampla, mar chuntar:
Set ^counter = 0 ; установка счётчика
Set id=$Increment(^counter) ; атомарное инкрементирование
Sa chás seo, is féidir brainsí a bheith ag an domhanda, sa bhreis ar a bhrí. Ní chuireann duine acu an ceann eile as an áireamh.
3.2 Cás speisialta 2. Rinn amháin agus go leor brainsí
Go ginearálta, is bonn clasaiceach eochairluacha é seo. Agus má shábhálann muid tuple luachanna mar luach, gheobhaidh muid tábla an-gnáth le príomh-eochair.
Chun tábla ar dhomhanda a chur i bhfeidhm, beidh orainn sraitheanna a ghiniúint sinn féin ó na luachanna colún, agus ansin iad a shábháil chuig an domhanda ag baint úsáide as an eochair phríomhúil. Le gur féidir an teaghrán a roinnt ina colúin arís agus tú ag léamh, is féidir leat úsáid a bhaint as:
- carachtair teorannaithe.
Set ^t(id1) = "col11/col21/col31" Set ^t(id2) = "col12/col22/col32"
- scéim dhian ina bhfuil líon réamhshocraithe beart i ngach réimse. Mar a dhéantar i mbunachair shonraí choibhneasta.
- feidhm speisialta $LB (ar fáil i Taisce), a chruthaíonn teaghrán luachanna.
Set ^t(id1) = $LB("col11", "col21", "col31") Set ^t(id2) = $LB("col12", "col22", "col32")
Is díol spéise é nach bhfuil sé deacair domhandaithe a úsáid chun rud éigin cosúil le hinnéacsanna tánaisteacha a dhéanamh i mbunachair shonraí choibhneasta. A ligean ar a dtugtar struchtúir den sórt sin innéacs dhomhanda. Is crann cúnta é innéacs domhanda le cuardach tapa a dhéanamh ar réimsí nach cuid d'eochair phríomha an phríomhdhomhanda. Chun é a líonadh agus é a úsáid, ní mór duit cód breise a scríobh.
Cruthaímid innéacs domhanda ar an gcéad cholún.
Set ^i("col11", id1) = 1
Set ^i("col12", id2) = 1
Anois, le cuardach tapa a dhéanamh ar fhaisnéis sa chéad cholún, ní mór dúinn breathnú ar an eolas domhanda ^i agus faigh na heochracha príomhúla (id) a fhreagraíonn do luach inmhianaithe an chéad cholúin.
Agus luach á chur isteach, is féidir linn cruinneluacha agus innéacsanna domhanda a chruthú láithreach do na réimsí riachtanacha. Agus ar mhaithe le hiontaofacht, déanaimis é a fhilleadh in idirbheart.
TSTART
Set ^t(id1) = $LB("col11", "col21", "col31")
Set ^i("col11", id1) = 1
TCOMMIT
Tá sonraí maidir le conas é a dhéanamh ar M
Oibreoidh táblaí den sórt sin chomh tapa agus a dhéantar i mbunachair shonraí traidisiúnta (nó níos tapúla fós) má scríobhtar in COS/M na feidhmeanna chun sraitheanna a chur isteach/a nuashonrú/a scriosadh agus má chuirtear le chéile iad.Sheiceáil mé an ráiteas seo le tástálacha ar an mórchóir INSERT agus SELECT isteach i dtábla dhá cholún amháin, lena n-áirítear úsáid a bhaint as orduithe TSTART agus TCOMMIT (idirbhearta).
Ní dhearna mé tástáil ar chásanna níos casta le rochtain chomhthráthach agus idirbhearta comhthreomhara.
Gan idirbhearta a úsáid, ba é an ráta ionsáite ná 778 ionsáite/soicind in aghaidh an mhilliúin luach.
Le 300 milliún luach - 422 ionsá / soicind.
Agus idirbhearta á n-úsáid - 572 ionsá / soicind le haghaidh ionsá 082M. Rinneadh na hoibríochtaí go léir ó chód M tiomsaithe.
Tá tiomántáin chrua rialta, ní SSD. RAID5 le Scríobh ar ais. Próiseálaí Phenom II 1100T.
Chun bunachar sonraí SQL a thástáil ar an mbealach céanna, ní mór duit nós imeachta stóráilte a scríobh a dhéanfaidh ionsá i lúb. Agus an modh seo á thástáil agam MySQL 5.5 (stóráil InnoDB), fuair mé uimhreacha nach mó ná ionsá 11K in aghaidh an tsoicind.
Sea, tá cuma níos casta ar chur i bhfeidhm táblaí ar dhomhanda ná ar bhunachair shonraí choibhneasta. Mar sin, tá rochtain SQL ag bunachair shonraí tionsclaíochta ar dhomhanda chun obair le sonraí tábla a shimpliú.
Go ginearálta, mura n-athróidh scéimre na sonraí go minic, níl an luas ionsáite ríthábhachtach agus is féidir an bunachar sonraí iomlán a léiriú go héasca i bhfoirm táblaí normalaithe, ansin tá sé níos éasca oibriú le SQL, ós rud é go soláthraíonn sé leibhéal astarraingthe níos airde. .
Sa chás áirithe seo bhí mé ag iarraidh é sin a thaispeáint is féidir le globals feidhmiú mar chruthaitheoir chun bunachair shonraí eile a chruthú. Cosúil le cóimeálaí inar féidir teangacha eile a scríobh. Seo samplaí de conas is féidir leat analógacha a chruthú ar dhomhanda
Más gá duit bunachar sonraí neamhchaighdeánach de chineál éigin a chruthú gan mórán iarrachta, ba cheart duit breathnú i dtreo domhanda.
3.3 Cás speisialta 3. Crann dhá leibhéal, tá líon seasta brainsí ag gach nód den dara leibhéal
Is dócha gur mheas tú é: is cur i bhfeidhm eile é seo ar tháblaí ar dhomhanda. Déanaimis an cur i bhfeidhm seo a chur i gcomparáid leis an gceann roimhe seo.
Táblaí ar chrann dhá leibhéal vs. ar chrann aon-leibhéil.
CONS
Son
- Níos moille le cur isteach, ós rud é go gcaithfidh tú líon na nóid a shocrú comhionann le líon na gcolún.
- Tomhaltas spás diosca níos mó. Ós rud é go n-úsáideann innéacsanna domhanda (a thuigtear mar innéacsanna eagair) le hainmneacha colún spás diosca agus déantar iad a mhacasamhlú do gach ró.
- Rochtain níos tapúla ar luachanna na gcolún aonair, ós rud é nach gá an teaghrán a pharsáil. De réir mo thástálacha, tá sé 11,5% níos tapúla ar 2 cholún agus níos mó ar líon níos mó colúin.
- Scéimre sonraí a athrú níos éasca
- Cód níos soiléire
Conclúid: ní do gach duine. Ós rud é go bhfuil luas ar cheann de na príomhbhuntáistí a bhaineann le domhandaithe, is beag an tairbhe an cur i bhfeidhm seo a úsáid, mar is dócha nach bhfeidhmeoidh sé níos tapúla ná táblaí i mbunachair shonraí choibhneasta.
3.4 Cás ginearálta. Crainn agus crainn ordaithe
Oireann aon struchtúr sonraí is féidir a léiriú mar chrann go foirfe le struchtúir dhomhanda.
3.4.1 Réada a bhfuil ábhair acu
Is é seo an réimse úsáide traidisiúnta na cruinne. Sa réimse leighis tá líon mór galair, cógais, comharthaí agus modhanna cóireála. Tá sé neamhréasúnach tábla a chruthú le milliún réimse do gach othar. Ina theannta sin, beidh 99% de na réimsí folamh.
Samhlaigh bunachar sonraí de tháblaí SQL: “othar” ~ 100 réimse, “Leigheas” - 000 réimsí, “Teiripí” - 100 réimsí, “Aimhréidh” - 000 réimsí, etc. agus mar sin de. Nó is féidir leat bunachar sonraí a chruthú ina bhfuil na mílte táblaí, gach ceann acu le haghaidh cineál sonrach othar (agus féadfaidh siad forluí!), cóireálacha, cógais, agus na mílte tábla eile le haghaidh naisc idir na táblaí seo.
Tá cruinneoga oiriúnach don leigheas, mar go gceadaíonn siad duit cur síos cruinn a chruthú do gach othar ar a stair leighis, ar theiripí éagsúla, agus ar ghníomhartha cógas, i bhfoirm crann, gan spás diosca breise a chur amú ar cholúin fholmha, mar a bheadh. bheith amhlaidh i gcás gaolmhar.
Ag baint úsáide as globals tá sé áisiúil bunachar sonraí a chruthú le sonraí faoi dhaoine, nuair a bhíonn sé tábhachtach uasmhéid faisnéise éagsúla faoin gcliant a charnadh agus a chórasú. Tá éileamh air seo i gcúrsaí leighis, baincéireachta, margaíochta, cartlannaithe agus réimsí eile
.
Ar ndóigh, in SQL is féidir leat freisin aithris a dhéanamh ar chrann le cúpla tábla (
Ní rún ar bith é go dtógfaidh sé cuid mhaith ama an scéimre sonraí ar tháblaí ollmhóra a athrú (ALTER TABLE). Déanann MySQL, mar shampla, ALTER TABLE ADD|DÍOLÚ COLÚN trí fhaisnéis a chóipeáil go hiomlán ón sean tábla go dtí an tábla nua (innill tástálaithe MyISAM, InnoDB). Is féidir a chrochadh suas le bunachar sonraí oibre le billiúin taifead ar feadh laethanta, más rud é nach seachtain.
Ní chosnaíonn athrú ar an struchtúr sonraí má úsáidimid cruinneoga rud ar bith dúinn. Ag am ar bith is féidir linn aon airíonna nua a theastaíonn uainn a chur le réad ar bith, ag aon leibhéal den ordlathas. Is féidir athruithe a bhaineann le craobhacha a athainmniú sa chúlra ar bhunachar sonraí reatha.
Dá bhrí sin, nuair a thagann sé chun rudaí a stóráil le líon mór airíonna roghnacha, is rogha iontach é cruinneoga.
Thairis sin, lig dom a mheabhrú duit go bhfuil rochtain láithreach ar aon cheann de na hairíonna, ós rud é ar fud an domhain is crainn B iad gach cosán.
Go ginearálta, is cineál bunachar sonraí doiciméad-dhírithe iad bunachair shonraí dhomhanda agus a bhfuil ar a gcumas faisnéis ordlathach a stóráil. Mar sin, is féidir le bunachair shonraí doiciméad-dhírithe dul san iomaíocht le domhanda i réimse na taifid leighis a stóráil. Ach níl sé sách mar an gcéanna fósGlacaimis MongoDB le haghaidh comparáide. Sa bhfearann seo cailleann sé do na cruinne ar na cúiseanna seo a leanas:
- Méid an doiciméid. Is é an t-aonad stórála ná téacs i bhformáid JSON (BSON níos cruinne) le huasmhéid de thart ar 16MB. Rinneadh an srian go sonrach ionas nach dtiocfaidh moill ar bhunachar sonraí JSON le linn parsála má tá doiciméad ollmhór JSON stóráilte ann agus ansin rochtain ag réimsí air. Ba cheart go mbeadh gach faisnéis faoin othar sa doiciméad seo. Tá a fhios againn go léir cé chomh tiubh is féidir le taifid othar a bheith. Cuireann uasmhéid cárta 16MB deireadh láithreach le hothair a bhfuil comhaid MRI, scanadh X-gha agus staidéir eile ar a gcárta galair. I mbrainse amháin den domhan is féidir ghigibheart agus teiraibítí faisnéise a bheith agat. I bprionsabal, is féidir linn deireadh a chur leis seo, ach leanfaidh mé ar aghaidh.
- Am comhfhiosachta/athrú/scriosadh maoine nua i gcairt an othair. Ní mór do bhunachar sonraí dá leithéid an léarscáil ar fad a léamh i gcuimhne (tá sé seo cuid mhór!), BSON a pharsáil, nód nua a chur leis/athrú/scrios, innéacsanna a nuashonrú, é a phacáil isteach i BSON, agus é a shábháil ar diosca. Ní gá do dhomhanda ach rochtain a fháil ar mhaoin shonrach agus í a ionramháil.
- Rochtain thapa ar mhaoin aonair. Le go leor maoine i ndoiciméad agus a struchtúr il-leibhéil, beidh rochtain ar airíonna aonair níos tapúla mar gheall ar an bhfíric gur crann B é gach cosán sa domhan. I BSON, caithfidh tú an doiciméad a pharsáil go líneach chun an t-airí atá ag teastáil a fháil.
3.3.2 Eagair chumannacha
Tagann eagair chomhthiomsaitheach (fiú le heagair neadaithe) go foirfe ar dhomhanda. Mar shampla, taispeánfar eagar den sórt sin ó PHP sa chéad phictiúr 3.3.1.
$a = array(
"name" => "Vince Medvedev",
"city" => "Moscow",
"threatments" => array(
"surgeries" => array("apedicectomy", "biopsy"),
"radiation" => array("gamma", "x-rays"),
"physiotherapy" => array("knee", "shoulder")
)
);
3.3.3 Doiciméid ordlathacha: XML, JSON
Chomh maith leis sin a stóráil go héasca i globals. Is féidir é a leagan amach ar bhealaí éagsúla le haghaidh stórála.
XML
Is é an bealach is éasca chun XML a dhianscaoileadh ina dhomhanda ná tréithe clibeanna a stóráil i nóid. Agus má tá gá le rochtain tapa ar shaintréithe clibeanna, ansin is féidir linn iad a aistriú isteach i mbrainsí ar leith.
<note id=5>
<to>Вася</to>
<from>Света</from>
<heading>Напоминание</heading>
<body>Позвони мне завтра!</body>
</note>
Ar COS bheadh sé seo ag teacht leis an gcód:
Set ^xml("note")="id=5"
Set ^xml("note","to")="Саша"
Set ^xml("note","from")="Света"
Set ^xml("note","heading")="Напоминание"
Set ^xml("note","body")="Позвони мне завтра!"
Tráchtaireacht: I gcás XML, JSON, eagair chomhthiomsaíocha, is féidir leat teacht ar go leor bealaí éagsúla le taispeáint ar dhomhanda. Sa chás seo, níor léirigh muid ord na bhfochlibeanna sa chlib nótaí. Go domhanda ^xml taispeánfar na fochlibeanna in ord aibítre. Chun an t-ordú a léiriú go docht, is féidir leat an taispeáint seo a leanas a úsáid, mar shampla:
JSON.
Léiríonn an chéad phictiúr ó chuid 3.3.1 léiriú ar an doiciméad JSON seo:
var document = {
"name": "Vince Medvedev",
"city": "Moscow",
"threatments": {
"surgeries": ["apedicectomy", "biopsy"],
"radiation": ["gamma", "x-rays"],
"physiotherapy": ["knee", "shoulder"]
},
};
3.3.4 Struchtúir chomhionanna a cheanglaíonn caidrimh ordlathacha
Samplaí: struchtúr na n-oifigí díolacháin, suíomh daoine i struchtúr MLM, bunachar sonraí oscailtí fichille.
Bunachar sonraí tús. Is féidir leat an meastachán fórsa stróc a úsáid mar luach innéacs an nód domhanda. Ansin, d'fhonn an t-aistriú is láidre a roghnú, beidh sé go leor an brainse a bhfuil an meáchan is mó a roghnú. Sa domhan, déanfar gach brainse ag gach leibhéal a shórtáil de réir neart gluaiseachta.
Struchtúr na n-oifigí díolacháin, struchtúr na ndaoine i MLM. Is féidir le nóid luachanna caching áirithe a stóráil a léiríonn tréithe an fhochrainn iomláin. Mar shampla, an méid díolacháin d'fhochrainn ar leith. Ag am ar bith is féidir linn figiúr a fháil a léiríonn éachtaí aon bhrainse.
4. Cad iad na cásanna is mó tairbhí úsáid a bhaint as domhandaithe?
Cuireann an chéad cholún cásanna i láthair ina bhfaighidh tú gnóthachan luais suntasach trí úsáid a bhaint as cruinneoga, agus sa dara colún nuair a dhéanfar an dearadh nó an tsamhail sonraí a shimpliú.
Speed
Éascaíocht próiseála/cur i láthair sonraí
- Ionsáigh [le sórtáil uathoibríoch ag gach leibhéal], [innéacsú de réir máistir-eochair]
- Fochrainn a bhaint
- Rudaí le go leor maoine neadaithe a dteastaíonn rochtain aonair uathu
- Struchtúr ordlathach leis an gcumas brainsí leanaí a sheachbhóthar ó aon bhrainse, fiú cinn nach bhfuil ann
- Trasnú doimhneacht-an chéad fochrainn
- Cuspóirí/eintitis a bhfuil líon mór réadmhaoine/aonáin roghnacha [agus/nó neadaithe] acu
- Gan sonraí scéimre. Nuair is féidir le hairíonna nua le feiceáil go minic agus na sean-imíonn siad.
- Ní mór duit bunachar sonraí saincheaptha a chruthú.
- Bunanna cosáin agus crainn chinnidh. Nuair a bhíonn sé áisiúil cosáin a léiriú mar chrann.
- Struchtúir ordlathacha a bhaint gan úsáid a bhaint as atarlú
Síneadh
Séanadh: Is é an t-alt seo agus mo chuid tuairimí dó mo thuairim agus níl aon bhaint acu le seasamh oifigiúil InterSystems Corporation.
Foinse: will.com