Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2A 'tòiseachadh - faic pàirt 1.

3. Caochlaidhean de structaran nuair a thathar a' cleachdadh cruinneagan

Tha grunn chùisean sònraichte aig structar leithid craobh òrdaichte. Beachdaichidh sinn air an fheadhainn aig a bheil luach practaigeach nuair a bhios sinn ag obair le cruinne-cè.

3.1 Cùis shònraichte 1. Aon nód gun mheuran


Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2Faodar cruinneagan a chleachdadh chan ann a-mhàin mar raon, ach cuideachd mar chaochladairean cunbhalach. Mar eisimpleir, mar chuntar:

Set ^counter = 0  ; установка счётчика
Set id=$Increment(^counter) ;  атомарное инкрементирование

Anns a 'chùis seo, faodaidh meuran a bhith aig a' chruinne-cè, a bharrachd air a bhrìgh. Chan eil aon a 'dùnadh a-mach an tè eile.

3.2 Cùis shònraichte 2. Aon vertex agus iomadh meur

San fharsaingeachd, is e bunait prìomh luach clasaigeach a tha seo. Agus ma shàbhaileas sinn tuple de luachan mar luach, gheibh sinn clàr gu math àbhaisteach le prìomh iuchair.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2

Gus clàr air cruinnean a chuir an gnìomh, feumaidh sinn sreathan a ghineadh sinn fhìn bho luachan nan colbhan, agus an uairsin a shàbhaladh don chruinne-cè a’ cleachdadh a ’phrìomh iuchair. Gus am bi e comasach an sreang a roinn ann an colbhan a-rithist nuair a bhios tu a’ leughadh, faodaidh tu:

  1. caractaran delimiter.
    Set ^t(id1) = "col11/col21/col31"
    Set ^t(id2) = "col12/col22/col32"
  2. sgeama teann anns a bheil gach raon a’ gabhail a-steach àireamh ro-shuidhichte de bytes. Mar a tha air a dhèanamh ann an stòran-dàta dàimh.
  3. gnìomh sònraichte $LB (ri fhaighinn ann an Cache), a chruthaicheas sreath de luachan.
    Set ^t(id1) = $LB("col11", "col21", "col31")
    Set ^t(id2) = $LB("col12", "col22", "col32")

Gu inntinneach, chan eil e doirbh cruinneagan a chleachdadh gus rudeigin coltach ri clàran-amais àrd-sgoile ann an stòran-dàta dàimheach a dhèanamh. Canaidh sinn clàran-amais nan structaran sin mar chruinne-cè. Tha clàr-amais cruinne na chraobh taice airson raointean a tha a’ rannsachadh gu sgiobalta nach eil nam pàirt de phrìomh iuchair a’ phrìomh chruinneil. Gus a lìonadh agus a chleachdadh, feumaidh tu còd a bharrachd a sgrìobhadh.

Cruthaichidh sinn clàr-amais cruinne air a’ chiad cholbh.

Set ^i("col11", id1) = 1
Set ^i("col12", id2) = 1

A-nis, gus fiosrachadh a lorg gu sgiobalta anns a’ chiad cholbh, feumaidh sinn coimhead a-steach don chruinne-cè ^i agus lorg na prìomh iuchraichean (id) a fhreagras air an luach a tha thu ag iarraidh sa chiad cholbh.

Nuair a chuireas sinn luach a-steach, is urrainn dhuinn an dà chuid cruinnean luach agus clàr-amais a chruthachadh airson nan raointean a tha a dhìth. Agus airson earbsachd, leigidh sinn a h-uile càil ann an gnothach.

TSTART
Set ^t(id1) = $LB("col11", "col21", "col31")
Set ^i("col11", id1) = 1
TCOMMIT

Fiosrachadh air mar a nì thu e air M clàran air cruinne-cè, aithris air clàran-amais àrd-sgoile.

Obraichidh clàran mar seo cho luath ‘s a tha iad ann an stòran-dàta traidiseanta (no eadhon nas luaithe) ma tha na gnìomhan airson sreathan a chuir a-steach / ùrachadh / cuir às air an sgrìobhadh ann an COS / M agus air an cur ri chèile.Thug mi sùil air an aithris seo le deuchainnean air mòr INSERT agus SELECT ann an aon chlàr dà-cholbh, a’ toirt a-steach cleachdadh òrdughan TSTART agus TCOMMIT (gnìomh).

Cha do rinn mi deuchainn air suidheachaidhean nas iom-fhillte le ruigsinneachd co-shìnte agus gnothaichean co-shìnte.

Gun a bhith a’ cleachdadh ghnothaichean, b’ e an ìre cuir a-steach 778 cuir a-steach / diog gach millean luachan.
Le 300 millean luachan - 422 cuir a-steach / diog.

Nuair a bhios tu a’ cleachdadh ghnothaichean - cuir a-steach 572 / diog airson cuir a-steach 082M. Chaidh a h-uile gnìomh a dhèanamh bho chòd M a chaidh a chur ri chèile.
Tha draibhearan cruaidh cunbhalach, chan e SSD. RAID5 le Sgrìobhadh air ais. Pròiseasar Phenom II 1100T.

Gus stòr-dàta SQL a dhearbhadh san aon dòigh, feumaidh tu modh-obrach a tha air a stòradh a sgrìobhadh a nì cuir a-steach ann an lùb. Nuair a rinn mi deuchainn air MySQL 5.5 (stòradh InnoDB), a’ cleachdadh an dòigh seo fhuair mi àireamhan gun a bhith nas motha na cuir a-steach 11K gach diog.
Tha, tha buileachadh chlàran air cruinne a’ coimhead nas iom-fhillte na ann an stòran-dàta co-cheangailte. Mar sin, tha cothrom aig stòran-dàta gnìomhachais air cruinnean SQL gus obair a dhèanamh nas sìmplidhe le dàta clàir.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2San fharsaingeachd, mura h-atharraich an sgeama dàta gu tric, chan eil an astar cuir a-steach deatamach agus faodar an stòr-dàta gu lèir a riochdachadh gu furasta ann an cruth chlàran àbhaisteach, tha e nas fhasa obrachadh le SQL, leis gu bheil e a ’toirt seachad ìre nas àirde de tharraing. .

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2Anns a 'chùis shònraichte seo bha mi airson sin a shealltainn faodaidh cruinnean a bhith nan neach-togail airson stòran-dàta eile a chruthachadh. Coltach ri assembler anns am faodar cànanan eile a sgrìobhadh. Seo eisimpleirean de mar as urrainn dhut analogues a chruthachadh air cruinnean prìomh luach, liostaichean, seataichean, clàran, stòran-dàta stèidhichte air sgrìobhainnean.

Ma dh’ fheumas tu stòr-dàta neo-àbhaisteach de sheòrsa air choreigin a chruthachadh le glè bheag oidhirp, bu chòir dhut coimhead gu cruinne.

3.3 Cùis sònraichte 3. Craobh dà-ìre, tha àireamh stèidhichte de mheuran aig gach nód den dàrna ìre

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2Is dòcha gun do smaoinich thu e: is e seo buileachadh eile de chlàran air cruinne. Dèanamaid coimeas eadar a’ bhuileachadh seo agus an tè roimhe.

Clàran air craobh dà-ìre vs. air craobh aon-ìre.

Минусы
Плюсы

  1. Nas slaodaiche airson cuir a-steach, oir feumaidh tu an àireamh de nodan a shuidheachadh co-ionann ris an àireamh de cholbhan.
  2. Barrachd caitheamh àite diosc. Leis gu bheil clàran-amais cruinne (air an tuigsinn mar chlàran-amais rèite) le ainmean colbh a’ gabhail àite diosc agus gan dùblachadh airson gach sreath.

  1. Cothrom nas luaithe air luachan colbhan fa leth, leis nach eil feum air an t-sreang a pharsadh. A rèir mo dheuchainnean, tha e 11,5% nas luaithe air 2 cholbh agus barrachd air àireamh nas motha de cholbhan.
  2. Sgeama dàta atharrachadh nas fhasa
  3. Còd nas soilleire

Co-dhùnadh: chan ann airson a h-uile duine. Leis gur e astar aon de na prìomh bhuannachdan a tha aig cruinne-cè, chan eil mòran feum ann a bhith a’ cleachdadh a’ ghnìomhachais seo, oir tha e coltach nach bi e a’ coileanadh nas luaithe na clàran ann an stòran-dàta co-cheangailte.

3.4 Cùis choitcheann. Craobhan agus craobhan òrdaichte

Bidh structar dàta sam bith a dh'fhaodar a riochdachadh mar chraobh a 'freagairt gu foirfe ri cruinne.

3.4.1 Nithean le cuspairean

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2

Is e seo an raon de chleachdadh traidiseanta de chruinneil. Anns an raon meidigeach tha àireamh mhòr de ghalaran, cungaidhean-leigheis, comharraidhean agus dòighean làimhseachaidh. Tha e neo-reusanta clàr a chruthachadh le millean raon airson gach euslainteach. A bharrachd air an sin, bidh 99% de na raointean falamh.

Smaoinich air stòr-dàta SQL de chlàran: “euslainteach” ~ achaidhean 100, “Cungaidh-leigheis” - achaidhean 000, “Therapy” - achaidhean 100, “Toraidhean” - raointean 000, msaa. Agus mar sin air adhart. No faodaidh tu stòr-dàta de mhìltean de chlàran a chruthachadh, gach fear airson seòrsa sònraichte de dh’ euslainteach (agus faodaidh iad a dhol thairis air!), leigheasan, cungaidhean-leigheis, agus mìltean eile de chlàran airson ceanglaichean eadar na bùird sin.

Tha cruinneagan air leth freagarrach airson cungaidh-leigheis, oir leigidh iad leat cunntas ceart a chruthachadh airson gach euslainteach air an eachdraidh mheidigeach aige, diofar leigheasan, agus gnìomhan cungaidh-leigheis, ann an cruth craoibhe, gun a bhith a’ caitheamh àite diosc a bharrachd air colbhan falamh, mar a bhiodh. biodh a chùis ann an cùis dàimh.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2A’ cleachdadh globals tha e goireasach stòr-dàta a chruthachadh le dàta mu dhaoine, nuair a tha e cudromach cruinneachadh agus siostamachadh aig a’ char as àirde de dhiofar fiosrachaidh mun neach-dèiligidh. Tha iarrtas mòr air seo ann an cungaidh-leigheis, bancaireachd, margaidheachd, tasglann agus raointean eile

.
Gu dearbh, ann an SQL faodaidh tu cuideachd craobh ath-aithris le dìreach beagan chlàran (EAV, 1,2,3,4,5,6,7,8,9,10), ach tha seo tòrr nas iom-fhillte agus bidh e nas slaodaiche. Gu bunaiteach, dh'fheumadh tu cruinne a sgrìobhadh a bhios ag obair air bùird agus an obair gu lèir fhalach le bùird fo ìre tarraing. Tha e ceàrr atharrais a dhèanamh air teicneòlas aig ìre nas ìsle (cruinneil) a’ cleachdadh teicneòlas àrd-ìre (SQL). Neo-iomchaidh.

Chan eil e na dhìomhaireachd gum faod atharrachadh an sgeama dàta air bùird mòra (ALTER TABLE) ùine mhath a thoirt. Bidh MySQL, mar eisimpleir, a’ dèanamh ALTER TABLE ADD | Drop COLUMN le bhith a’ dèanamh lethbhreac iomlan de dh’ fhiosrachadh bhon t-seann chlàr chun chlàr ùr (deuchainn MyISAM, einnseanan InnoDB). A dh’ fhaodas stòr-dàta obrach a chrochadh le billeanan de chlàran airson làithean, mura h-eil seachdainean.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2Cha chosg atharrachadh structar an dàta ma chleachdas sinn cruinneachan dad dhuinn. Aig àm sam bith is urrainn dhuinn feartan ùra sam bith a dh’ fheumas sinn a chur ri nì sam bith, aig ìre sam bith den rangachd. Faodar atharrachaidhean co-cheangailte ri ath-ainmeachadh mheuran a ruith air a’ chùl air stòr-dàta ruith.


Mar sin, nuair a thig e gu bhith a 'stòradh stuthan le àireamh mhòr de fheartan roghainneil, tha cruinneagan na dheagh roghainn.

A bharrachd air an sin, leig dhomh do chuimhneachadh gu bheil ruigsinneachd gu gin de na togalaichean sa bhad, leis gu bheil a h-uile slighe air feadh na cruinne mar chraobhan B.

Tha stòran-dàta cruinne, san fharsaingeachd, nan seòrsa de stòr-dàta stèidhichte air sgrìobhainnean le comas fiosrachadh rangachd a stòradh. Mar sin, faodaidh stòran-dàta stèidhichte air sgrìobhainnean farpais ri cruinne ann an raon stòradh chlàran meidigeach. Ach chan eil e buileach mar an ceudnaGabhamaid MongoDB airson coimeas. Anns an raon seo bidh e a’ call dha na cruinne airson na h-adhbharan a leanas:

  1. Meud an sgrìobhainn. Is e teacsa a th’ anns an aonad stòraidh ann an cruth JSON (BSON nas mionaidiche) le meud as motha de mu 16MB. Chaidh an cuingealachadh a dhèanamh gu sònraichte gus nach bi stòr-dàta JSON a’ slaodadh sìos aig àm parsadh ma tha sgrìobhainn JSON mòr air a stòradh ann agus an uairsin faighinn thuige le raointean. Bu chòir a h-uile fiosrachadh mun euslainteach a bhith anns an sgrìobhainn seo. Tha fios againn uile cho tiugh sa dh’ fhaodadh clàran euslaintich a bhith. Bidh meud cairt as àirde de 16MB a’ cur stad sa bhad air euslaintich aig a bheil cairt galair a’ toirt a-steach faidhlichean MRI, sganaidhean X-ray agus sgrùdaidhean eile. Ann an aon mheur den t-saoghal faodaidh tu gigabytes agus terabytes fiosrachaidh a bhith agad. Ann am prionnsabal, faodaidh sinn crìoch a chur air seo, ach leanaidh mi air adhart.
  2. Ùine mothachaidh / atharrachadh / cuir às do thogalaichean ùra ann an clàr an euslaintich. Feumaidh stòr-dàta mar seo am mapa gu lèir a leughadh mar chuimhne (is e tòrr mòr a tha seo!), BSON a pharsadh, cuir/atharraich/sguab às nod ùr, ùraich clàran-amais, pacaich a-steach e ann am BSON, agus sàbhail gu diosc e. Chan fheum cruinne-cruinne ach faighinn gu togalach sònraichte agus a làimhseachadh.
  3. Cothrom luath air togalaichean fa leth. Le mòran thogalaichean ann an sgrìobhainn agus an structar ioma-ìre aige, bidh ruigsinneachd air togalaichean fa-leth nas luaithe leis gu bheil gach slighe sa chruinne-cè na chraobh B. Ann am BSON, feumaidh tu an sgrìobhainn a pharsadh gu sreathach gus an togalach a tha thu ag iarraidh a lorg.

3.3.2 Eagrachaidhean co-cheangail

Bidh arrays ceangail (eadhon le arrays neadachaidh) a ’freagairt gu foirfe air cruinnean. Mar eisimpleir, thèid an leithid de raon bho PHP a thaisbeanadh anns a’ chiad dealbh 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 Sgrìobhainnean rangachd: XML, JSON

Cuideachd air a stòradh gu furasta ann an cruinneagan. Faodar a dhealbhadh ann an diofar dhòighean airson stòradh.

XML
Is e an dòigh as fhasa XML a pharsadh gu cruinneagan a bhith a’ stòradh buadhan tagaichean ann an nodan. Agus ma tha feum air ruigsinneachd luath air buadhan tagaichean, is urrainn dhuinn an gluasad gu geugan fa leth.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2

<note id=5>
<to>Вася</to>
<from>Света</from>
<heading>Напоминание</heading>
<body>Позвони мне завтра!</body>
</note>

Air COS bhiodh seo a’ freagairt ris a’ chòd:

Set ^xml("note")="id=5"
Set ^xml("note","to")="Саша"
Set ^xml("note","from")="Света"
Set ^xml("note","heading")="Напоминание"
Set ^xml("note","body")="Позвони мне завтра!"

Nota: Airson XML, JSON, arrays com-pàirteach, faodaidh tu iomadh dòigh eadar-dhealaichte a chruthachadh airson taisbeanadh air cruinnean. Anns a’ chùis seo, cha do sheall sinn òrdugh nan subtags anns an taga nota. Gu cruinneil ^xml thèid subtags a thaisbeanadh ann an òrdugh na h-aibideil. Gus an òrdugh a nochdadh gu teann, faodaidh tu, mar eisimpleir, an taisbeanadh a leanas a chleachdadh:

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2
JSON.
Tha a’ chiad dealbh bho earrann 3.3.1 a’ sealltainn faileas den sgrìobhainn JSON seo:

var document = {
  "name": "Vince Medvedev",
  "city": "Moscow",
  "threatments": {
    "surgeries": ["apedicectomy", "biopsy"],
    "radiation": ["gamma", "x-rays"],
    "physiotherapy": ["knee", "shoulder"]
  },
};

3.3.4 Structaran co-ionann ceangailte le dàimhean rangachd

Eisimpleirean: structar oifisean reic, suidheachadh dhaoine ann an structar MLM, stòr-dàta fosglaidhean ann an tàileasg.

Stòr-dàta deasbaid. Faodaidh tu an tuairmse feachd stròc a chleachdadh mar luach clàr-amais an nód cruinne. An uairsin, gus an gluasad as làidire a thaghadh, bidh e gu leòr am meur leis a 'chuideam as motha a thaghadh. Anns a 'chruinne-cè, thèid a h-uile meur aig gach ìre a rèiteachadh le neart gluasad.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2

Structar oifisean reic, structar dhaoine ann am MLM. Faodaidh nodan cuid de luachan tasgadan a stòradh a tha a’ nochdadh feartan an fho-chraobh gu lèir. Mar eisimpleir, meud reic fo-chraobh sònraichte. Aig àm sam bith gheibh sinn figear a tha a 'nochdadh coileanaidhean meur sam bith.

Tha cruinneagan nan claidheamhan ulaidh airson dàta a stòradh. Craobhan. Pàirt 2

4. Dè na cùisean anns a bheil e nas buannachdail cruinneagan a chleachdadh?

Tha a’ chiad cholbh a’ taisbeanadh chùisean far am faigh thu buannachd astair mòr le bhith a’ cleachdadh chruinne-cè, agus an dàrna fear nuair a thèid an dealbhadh no am modail dàta a dhèanamh nas sìmplidhe.

Astar
Furasta a làimhseachadh / taisbeanadh dàta

  1. Cuir a-steach [le rèiteachadh fèin-ghluasadach aig gach ìre], [clàr-amais le prìomh iuchair]
  2. A 'toirt air falbh fo-chraobhan
  3. Rudan le mòran thogalaichean neadachaidh a dh’ fheumas ruigsinneachd fa-leth
  4. Structar rangachd leis a’ chomas a bhith a’ seachnadh meuran cloinne bho mheur sam bith, eadhon feadhainn nach eil ann
  5. Doimhneachd - an toiseach a 'dol thairis air fo-chraobhan
  1. Rudan / buidhnean le àireamh mhòr de thogalaichean / aonadan roghainneil [agus / no neadachadh]
  2. Dàta gun sgeama. Nuair a dh’ fhaodadh togalaichean ùra nochdadh gu tric agus seann fheadhainn à sealladh.
  3. Feumaidh tu stòr-dàta gnàthaichte a chruthachadh.
  4. Bunan slighe agus craobhan co-dhùnaidh. Nuair a tha e goireasach slighean a riochdachadh mar chraobh.
  5. A 'toirt air falbh structaran rangachd gun a bhith a' cleachdadh ath-chuairteachadh

A 'leantainn “Is e claidheamhan ulaidh a th’ ann an cruinne-cè airson dàta a stòradh. Arrays gann. Pàirt 3".

Àicheadh: Is e an artaigil seo agus na beachdan agam dha mo bheachd agus chan eil dàimh sam bith agam ri suidheachadh oifigeil InterSystems Corporation.

Source: www.habr.com

Cuir beachd ann