Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2Mmalite - lee akụkụ 1.

3. Variants nke owuwu mgbe eji globals

Ihe owuwu dị ka osisi nyere iwu nwere ikpe pụrụ iche dị iche iche. Ka anyị tụlee ndị nwere uru bara uru mgbe ị na-arụ ọrụ na globals.

3.1 Pụrụ iche ikpe 1. Otu ọnụ na-enweghị alaka


Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2Enwere ike iji ụwa mee ihe ọ bụghị naanị dị ka nhazi, kamakwa dị ka mgbanwe mgbe niile. Dịka ọmụmaatụ, dị ka counter:

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

N'okwu a, zuru ụwa ọnụ, na mgbakwunye na ihe ọ pụtara, nwekwara ike inwe alaka. Otu anaghị ewepu nke ọzọ.

3.2 Pụrụ iche ikpe 2. Otu vertex na ọtụtụ alaka

N'izugbe, nke a bụ ntọala igodo-uru kpochapụrụ. Ma ọ bụrụ na anyị na-echekwa a tuple nke ụkpụrụ dị ka uru, anyị ga-enwe a nnọọ nkịtị table na isi igodo.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2

Iji mejuputa tebụl na ụwa, anyị ga-ewepụta ahịrị onwe anyị site na ụkpụrụ kọlụm, wee chekwaa ha na ụwa site na iji isi igodo. Iji mee ka enwere ike kewaa eriri ahụ n'ime kọlụm ọzọ mgbe ị na-agụ, ị nwere ike iji:

  1. agwa agwa.
    Set ^t(id1) = "col11/col21/col31"
    Set ^t(id2) = "col12/col22/col32"
  2. atụmatụ siri ike nke ubi nke ọ bụla nwere ọnụọgụ bytes a kara aka. Dị ka a na-eme na ọdụ data mmekọrịta.
  3. ọrụ pụrụ iche $ LB (dị na Cache), nke na-emepụta eriri ụkpụrụ.
    Set ^t(id1) = $LB("col11", "col21", "col31")
    Set ^t(id2) = $LB("col12", "col22", "col32")

N'ụzọ na-akpali mmasị, ọ naghị esiri ike iji globals mee ihe yiri akara ngosi nke abụọ na ọdụ data mmekọrịta. Ka anyị na-akpọ ndị dị otú ahụ owuwu index globals. Index zuru ụwa ọnụ bụ osisi inyeaka maka ịchọ ngwa ngwa n'ubi na-abụghị akụkụ nke igodo bụ isi nke ụwa. Iji mejupụta ya na iji ya, ịkwesịrị ide koodu ọzọ.

Ka anyị mepụta ndepụta index zuru ụwa ọnụ na kọlụm nke mbụ.

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

Ugbu a, ka ịchọọ ozi ngwa ngwa na kọlụm mbụ, anyị ga-eleba anya n'ime ụwa ^i wee chọta igodo isi (id) dabara na uru achọrọ nke kọlụm nke mbụ.

Mgbe ị na-etinye uru, anyị nwere ike ịmepụta ozugbo ma uru na index globals maka mpaghara achọrọ. Na maka ntụkwasị obi, ka anyị kechie ya niile na azụmahịa.

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

Nkọwa maka otu esi eme ya na M tebụl na globals, nṅomi nke abụọ index.

Tebụl ndị dị otú ahụ ga-arụ ọrụ ngwa ngwa dịka na ọdụ data ọdịnala (ma ọ bụ ọbụna ngwa ngwa) ma ọ bụrụ na arụ ọrụ maka ntinye / imelite / ihichapụ ahịrị ka edere na COS / M ma chịkọta ya.Eji m ule nyocha n'ule INSERT na họrọ n'ime otu tebụl kọlụm abụọ, gụnyere iji iwu TSTART na TCOMMIT (ịzụ ahịa).

Anwalebeghị m ọnọdụ dị mgbagwoju anya karịa site na ịnweta otu oge yana azụmahịa ndị yiri ya.

Na-ejighi azụmahịa, ọnụego ntinye bụ ntinye 778 / nke abụọ kwa ọnụ ahịa nde.
Na 300 nde uru - 422 ntinye / nke abụọ.

Mgbe ị na-eji azụmahịa - 572 ntinye / nke abụọ maka ntinye 082M. Emere arụmọrụ niile site na koodu M achịkọtara.
Draịvụ ike na-adị mgbe niile, ọ bụghị SSD. RAID5 nwere dee-azụ. Phenom II 1100T processor.

Iji nwalee nchekwa data SQL n'otu aka ahụ, ịkwesịrị ide usoro echekwara nke ga-eme ntinye na akaghị. Mgbe ị na-anwale MySQL 5.5 (nchekwa InnoDB), na-eji usoro a enwetara m ọnụọgụ karịa ntinye 11K kwa nkeji.
Ee, mmejuputa tebụl na globals na-ele anya dị mgbagwoju anya karịa na ọdụ data mmekọrịta. Ya mere, ọdụ data ụlọ ọrụ na ụwa nwere ohere SQL iji mee ka ọrụ dị mfe na data tabular.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2N'ozuzu, ọ bụrụ na atụmatụ data agaghị agbanwe ugboro ugboro, ntinye ọsọ ọsọ abụghị ihe dị egwu na nchekwa data niile nwere ike ịpụta ngwa ngwa n'ụdị tebụl nkịtị, mgbe ahụ ọ dị mfe ịrụ ọrụ na SQL, ebe ọ na-enye ọkwa dị elu nke abstraction. .

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2N'okwu a, achọrọ m igosi nke ahụ globals nwere ike rụọ ọrụ dịka onye nrụpụta maka ịmepụta ọdụ data ndị ọzọ. Dị ka onye na-agbakọta nke enwere ike dee asụsụ ndị ọzọ. Nke a bụ ọmụmaatụ otu ị ga-esi mepụta analogues na globals igodo-uru, ndepụta, tent, tabular, ọdụ data gbakwasara akwụkwọ.

Ọ bụrụ na ịchọrọ ịmepụta ụfọdụ ụdị nchekwa data na-abụghị ọkọlọtọ na obere mgbalị, mgbe ahụ ị kwesịrị ile anya n'ebe ụwa.

3.3 Okwu pụrụ iche 3. Osisi abụọ dị larịị, ọnụ ụzọ nke ọ bụla nke ọkwa nke abụọ nwere ọnụ ọgụgụ a kapịrị ọnụ nke alaka.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2O nwere ike ịbụ na ị chepụtara ya: nke a bụ mmemme ọzọ nke tebụl na ụwa. Ka anyị tulee mmejuputa iwu a na nke gara aga.

Tebụl dị n'elu osisi abụọ vs. n'elu osisi otu ọkwa.

Минусы
Плюсы

  1. Ji nwayọọ nwayọọ maka ntinye, ebe ọ bụ na ịkwesịrị ịtọ ọnụọgụ ọnụ ọnụ ọnụ ọgụgụ nke ogidi.
  2. Oriri ohere diski karịa. Ebe ọ bụ na ndenye aha zuru ụwa ọnụ (a ghọtara dị ka array index) nwere aha kọlụm na-eweghara ohere diski ma na-emegharị ya maka ahịrị ọ bụla.

  1. Ịnweta ngwa ngwa na ụkpụrụ nke kọlụm nke ọ bụla, ebe ọ bụ na ọ dịghị mkpa ịmegharị eriri ahụ. Dị ka ule m si dị, ọ bụ 11,5% ngwa ngwa na kọlụm 2 na ndị ọzọ na ọnụ ọgụgụ buru ibu nke ogidi.
  2. Ọ dị mfe ịgbanwe atụmatụ data
  3. Koodu doro anya karịa

Mmechi: ọ bụghị maka onye ọ bụla. Ebe ọ bụ na ọsọ bụ otu n'ime uru kachasị mkpa nke ụwa, ọ dịghị ihe dị mkpa na iji mmejuputa a, ebe ọ bụ na ọ ga-abụ na ọ gaghị eme ngwa ngwa karịa tebụl na ọdụ data mmekọrịta.

3.4 ikpe izugbe. Osisi na osisi nyere iwu

Ọdịdị data ọ bụla nwere ike ịnọchite anya dị ka osisi dabara nke ọma na ụwa.

3.4.1 Ihe nwere isiokwu

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2

Nke a bụ akụkụ nke omenala iji globals. Na ngalaba ahụike enwere ọtụtụ ọrịa, ọgwụ, mgbaàmà, na ụzọ ọgwụgwọ. Ọ bụ ihe ezi uche dị na ya ịmepụta tebụl nwere otu nde ubi maka onye ọrịa ọ bụla. Ọzọkwa, 99% nke ubi ga-abụ ihe efu.

Cheedị echiche ihe nchekwa data SQL nke tebụl: “onye ọrịa” ~ ubi 100, “Ọgwụ” - ubi 000, “Therapy” - ubi 100, “Mgbagwoju anya” - ubi 000, wdg. were gabazie. Ma ọ bụ ị nwere ike ịmepụta nchekwa data nke ọtụtụ puku tebụl, nke ọ bụla maka otu ụdị onye ọrịa (ma ha nwere ike ịdaba!), Ọgwụgwọ, ọgwụ, na ọtụtụ puku tebụl maka njikọ n'etiti tebụl ndị a.

Globals dị mma maka ọgwụ, ebe ha na-enye gị ohere ịmepụta maka onye ọrịa ọ bụla nkọwa ziri ezi nke akụkọ ihe mere eme ahụike ya, usoro ọgwụgwọ dị iche iche, na omume nke ọgwụ, n'ụdị osisi, na-enweghị imebi ohere diski ọzọ na ogidi efu, dị ka ọ ga-adị. bụrụ ikpe n'ihe gbasara mmekọrịta.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2Iji globals ọ dị mma ịmepụta nchekwa data nwere data gbasara ndị mmadụ, mgbe ọ dị mkpa ịkwakọba na nhazi usoro ozi dị iche iche gbasara onye ahịa. Nke a na-achọrọ na nkà mmụta ọgwụ, ụlọ akụ, ịzụ ahịa, nchekwa ihe na mpaghara ndị ọzọ

.
N'ezie, na SQL ị nwekwara ike iṅomi osisi nwere naanị tebụl ole na ole (EAV, 1,2,3,4,5,6,7,8,9,10), Otú ọ dị, nke a bụ nnọọ mgbagwoju anya na ọ ga-eji nwayọọ nwayọọ. N'ikpeazụ, ị ga-ede akwụkwọ zuru ụwa ọnụ nke na-arụ ọrụ na tebụl ma zoo ọrụ niile na tebụl n'okpuru oyi akwa abstraction. Ọ dị njọ iji teknụzụ dị elu (SQL) ṅomie teknụzụ dị ala. Ekwesighi ekwesi.

Ọ bụghị ihe nzuzo na ịgbanwe atụmatụ data na nnukwu tebụl (ALTER TABLE) nwere ike were oge kwesịrị ekwesị. Dịka ọmụmaatụ, MySQL na-eme ALTER TABLE ADD|DROP COLUMN site na iṅomi ozi kpamkpam site na tebụl ochie gaa na tebụl ọhụrụ (MyISAM nwalere, InnoDB engines). Nke nwere ike idowe nchekwa data na-arụ ọrụ na ọtụtụ ijeri ndekọ ụbọchị, ma ọ bụrụ na ọ bụghị izu.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2Ịgbanwe usoro data ma ọ bụrụ na anyị ejiri globals na-efu anyị ihe ọ bụla. N'oge ọ bụla anyị nwere ike itinye ihe ọhụrụ ọ bụla anyị chọrọ na ihe ọ bụla, n'ọkwa ọ bụla nke ndị isi. Enwere ike ịme mgbanwe ndị metụtara aha ngalaba aha n'azụ na nchekwa data na-agba ọsọ.


Ya mere, mgbe a bịara n'ichekwa ihe nwere ọnụ ọgụgụ dị ukwuu nke nhọrọ nhọrọ, globals bụ oke nhọrọ.

Ọzọkwa, ka m chetara gị na ịnweta nke ọ bụla n'ime ihe onwunwe bụ ngwa ngwa, ebe ọ bụ na n'ụwa nile ụzọ niile bụ B-osisi.

Ebe nchekwa data zuru ụwa ọnụ, n'ozuzu, bụ ụdị nchekwa data dabere na akwụkwọ nwere ikike ịchekwa ozi nhazi ọkwa. Ya mere, ọdụ data dabere na akwụkwọ nwere ike ịsọ mpi na ndị mba ụwa n'ihe gbasara ịchekwa ndekọ ahụike. Ma ọ ka bụ nnọọ otuKa anyị were MongoDB maka ntụnyere. Na ngalaba a ọ na-efunahụ ndị ụwa n'ihi ihe ndị a:

  1. Nha akwụkwọ. Ngalaba nchekwa ahụ bụ ederede n'ụdị JSON (n'ezie BSON) yana oke oke nke ihe dịka 16MB. Emere mmachi ahụ kpọmkwem ka nchekwa data JSON ghara iji nwayọ nwayọ n'oge a na-atụgharị ma ọ bụrụ na echekwara nnukwu akwụkwọ JSON na ya wee nweta ya site na ubi. Akwụkwọ a kwesịrị ịnwe ozi niile gbasara onye ọrịa. Anyị niile maara otú nnukwu ndekọ ndị ọrịa nwere ike isi dị. Oke kaadị kacha nke 16MB ozugbo na-akwụsị ndị ọrịa kaadị ọrịa ha gụnyere faịlụ MRI, nyocha X-ray na ọmụmụ ihe ndị ọzọ. N'otu ngalaba nke ụwa ị nwere ike ịnweta gigabytes na terabyte nke ozi. Na ụkpụrụ, anyị nwere ike ịkwụsị nke a, mana m ga-aga n'ihu.
  2. Oge nsụhọ / mgbanwe / ihichapụ ihe ọhụrụ na chaatị onye ọrịa. Ebe nchekwa data dị otú ahụ ga-agụrịrị map dum n'ime ebe nchekwa (nke a bụ nnukwu ego!), Mepụta BSON, tinye / gbanwee / hichapụ oghere ọhụrụ, melite indexes, tinye ya na BSON, ma chekwaa ya na diski. Gburugburu ụwa chọrọ naanị ịnweta otu akụrụngwa ma jiri ya mee ihe.
  3. Nweta ngwa ngwa ngwa ngwa ngwa ngwa. N'iji ọtụtụ ihe onwunwe dị na akwụkwọ na nhazi ọkwa ya dị iche iche, ịnweta ihe onwunwe nke ọ bụla ga-adị ngwa ngwa n'ihi na ụzọ ọ bụla dị na ụwa bụ osisi B. Na BSON, ị ga-atụgharị akwụkwọ ahụ n'ahịrị ka ịchọta ihe achọrọ.

3.3.2 Njikọ ọnụ

Ngwakọta mmekọrịta (ọbụlagodi na arrays akwụ) dabara nke ọma na mba ụwa. Dịka ọmụmaatụ, a ga-egosipụta ụdị n'usoro sitere na PHP na foto mbụ 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 Akwụkwọ nhazi ọkwa: XML, JSON

A na-echekwa ya ngwa ngwa na ụwa. Enwere ike ịtọpụ ya n'ụzọ dị iche iche maka nchekwa.

XML
Ụzọ kachasị mfe iji kpachapụta XML n'ime ụwa bụ ịchekwa njirimara mkpado na ọnụ. Ma ọ bụrụ na ọ dị mkpa ịnweta mkpado ngwa ngwa, mgbe ahụ, anyị nwere ike ịkwaga ha n'ime alaka dị iche iche.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2

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

Na COS nke a ga-adaba na koodu:

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

Ikwu: Maka XML, JSON, arrays mkpakọrịta, ị nwere ike wepụta ọtụtụ ụzọ dị iche iche e si egosipụta na ụwa niile. N'okwu a, anyị egosipụtaghị usoro nke subtags na mkpado ndetu. Gburugburu ụwa ^xml A ga-egosipụta subtags n'usoro mkpụrụedemede. Iji gosipụta usoro a nke ọma, ị nwere ike iji, dịka ọmụmaatụ, ngosi na-esonụ:

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2
JSON.
Foto nke mbụ sitere na ngalaba 3.3.1 na-egosi ngosipụta nke akwụkwọ JSON a:

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

3.3.4 Ihe owuwu ndị yiri ya sitere na mmekọrịta ndị isi

Ọmụmaatụ: nhazi ụlọ ọrụ ahịa, ebe ndị mmadụ nọ na nhazi MLM, nchekwa data nke oghere na chess.

Ebe nchekwa data mpụta mbụ. Ị nwere ike iji atụmatụ ike strok dị ka ọnụọgụ ndeksi nke ọnụ ọnụ ụwa. Mgbe ahụ, iji họrọ mmegharị kachasị ike, ọ ga-ezuru ịhọrọ alaka nke nwere oke ibu. N'ụwa niile, a ga-ahazi alaka niile dị na ọkwa ọ bụla site na ike ịkwaga.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2

Ọdịdị nke ụlọ ọrụ ahịa, nhazi nke ndị mmadụ na MLM. Ọnụ ụzọ nwere ike ịchekwa ụkpụrụ caching ụfọdụ na-egosipụta njirimara nke osisi subtree dum. Dị ka ọmụmaatụ, ahịa olu nke a nyere subtree. N'oge ọ bụla anyị nwere ike nweta ọnụ ọgụgụ na-egosipụta mmezu nke alaka ọ bụla.

Globals bụ mma agha-akụ maka ịchekwa data. Osisi. Akụkụ 2

4. N'ọnọdụ ndị dị aṅaa ka ọ kacha baa uru iji ụwa?

Kọlụm nke mbụ na-egosi ikpe ebe ị ga-enweta uru ọsọ ọsọ dị ukwuu site na iji globals, na nke abụọ mgbe a ga-eme ka imepụta ma ọ bụ ụdị data dị mfe.

Ngwa ọsọ
Mfe nke nhazi / ngosi data

  1. Ntinye [ya na nhazi akpaka n'ọkwa ọ bụla], [ndepụta site na isi igodo]
  2. Na-ewepu subtrees
  3. Ihe nwere ọtụtụ akụrụngwa akwụrụ chọrọ ohere onye ọ bụla
  4. Usoro nhazi nke nwere ikike ịgafe alaka ụmụaka site na alaka ọ bụla, ọbụlagodi ndị na-adịghị adị
  5. Omimi-mbụ ngafe nke osisi subtrees
  1. Ihe/ụlọ ọrụ nwere nnukwu ọnụọgụ nhọrọ (na/ma ọ bụ akwụ) akụrụngwa/ụlọ ọrụ
  2. Data enweghị atụmatụ. Mgbe ihe ọhụrụ nwere ike ịpụta mgbe mgbe ma ndị ochie na-apụ n'anya.
  3. Ịkwesịrị ịmepụta nchekwa data omenala.
  4. Ụzọ ntọala na osisi mkpebi. Mgbe ọ dị mma ịnọchite anya ụzọ dị ka osisi.
  5. Iwepu ihe owuwu usoro n'ejighi ntughari

Nọgide "Globals bụ mma agha-akụ maka ịchekwa data. Ngwakọta dị obere. Nkeji 3".

Disclaimer: Edemede a na ihe m kwuru na ya bụ echiche m na enweghị njikọ na ọkwa gọọmentị nke InterSystems Corporation.

isi: www.habr.com

Tinye a comment