Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Bilaabashada - eeg qaybta 1.

3. Kala duwanaanshaha qaab-dhismeedka marka la isticmaalayo caalami ah

Qaab dhismeed sida geed la dalbaday ayaa leh kiisas gaar ah oo kala duwan. Aynu tixgelinno kuwa leh qiimaha la taaban karo marka la shaqeynayo caalamiga ah.

3.1 Kiis gaar ah 1. Hal nood oo aan laamo lahayn


Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Globals waxaa loo isticmaali karaa ma aha oo kaliya sida diyaarinta, laakiin sidoo kale sida doorsoomayaasha caadiga ah. Tusaale ahaan, counter:

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

Xaaladdan oo kale, caalamiga ah, marka lagu daro macnaheeda, waxay sidoo kale yeelan kartaa laamo. Midna kan kale kama saaro.

3.2 Kiis gaar ah 2. Hal vertex iyo laamo badan

Guud ahaan, tani waa saldhigga qiimaha muhiimka ah ee caadiga ah. Oo haddii aan badbaadinno tuple qiyamka ah sida qiimaha, waxaan heli doonaa miis aad caadi ah oo leh furaha aasaasiga ah.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2

Si loo hirgeliyo jaantuska caalamiga ah, waa inaan ka soo saarno safaf nafteena ka soo saarna qiyamka tiirka, ka dibna aan u badbaadino kuwa caalamiga ah anagoo adeegsanayna furaha aasaasiga ah. Si aad u suurtowdo in xadhigga loo qaybiyo tiirar mar kale markaad wax akhrinayso, waxaad isticmaali kartaa:

  1. jilayaasha xaddidan.
    Set ^t(id1) = "col11/col21/col31"
    Set ^t(id2) = "col12/col22/col32"
  2. nidaam adag oo goob kastaa ay ku jirto tiro go'an oo bytes ah. Sida lagu sameeyo xogta macluumaadka.
  3. shaqo gaar ah $LB (la heli karo in Cache), kaas oo abuuraya xadhig ah oo qiyam ah.
    Set ^t(id1) = $LB("col11", "col21", "col31")
    Set ^t(id2) = $LB("col12", "col22", "col32")

Waxa xiisaha lihi leh, ma adka in la isticmaalo caalamiga ah si loo sameeyo shay la mid ah tusmooyinka sare ee xogta macluumaadka xidhiidhka. Aan ugu yeerno qaab-dhismeedkan oo kale index caalami ah. Tilmaanta caalamiga ah waa geed caawiye ah oo si degdeg ah loo baadho meelaha aan ka mid ahayn furaha aasaasiga ah ee caalamiga ah. Si aad u buuxiso oo aad u isticmaasho, waxaad u baahan tahay inaad qorto kood dheeraad ah.

Aan ku abuurno tusm caalami ah tiirka koowaad.

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

Hadda, si aad si dhakhso ah u raadiso macluumaadka tiirka koowaad, waa inaan eegnaa caalamka ^i oo hel furayaasha aasaasiga ah (id) ee u dhigma qiimaha la rabo ee tiirka koowaad.

Marka la gelinayo qiimaha, waxaan isla markiiba abuuri karnaa labadaba qiimaha iyo tusmooyinka caalamiga ah ee goobaha loo baahan yahay. Iyo kalsoonida, aynu ku wada duubno macaamil ganacsi.

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

Faahfaahin ku saabsan sida loo sameeyo M miisaska caalamiga ah, ku dayashada tusmooyinka sare.

Jadwalka noocaan ah wuxuu u shaqeyn doonaa sida ugu dhaqsaha badan sida database-dhaqameedka (ama xitaa si dhakhso ah) haddii hawlaha gelinta / cusboonaysiinta / tirtirka safafka lagu qoro COS/M lana ururiyo.Waxaan bayaankan ku hubiyay tijaabooyin badan INSERT iyo SELECT hal miis laba ka kooban, oo ay ku jiraan adeegsiga TSTART iyo TCOMMIT amarada (ganacsiga).

Ma tijaabin xaalado kakan oo leh marin isku mid ah iyo macaamilo isbarbar socda.

Iyada oo aan la isticmaalin wax kala iibsiga, heerka gelintu waxa uu ahaa 778 gelis/ilbiriqsi halkii milyan oo qiimayaal ah.
Iyada oo leh 300 milyan oo qiimayaal - 422 gelin / ilbiriqsi.

Marka la isticmaalayo wax kala iibsiga - 572 gelinno / ilbiriqsi 082M gelinno. Dhammaan hawlgallada waxaa laga sameeyay koodka M.
Hard Drive-yadu waa joogto ee maaha SSD. RAID5 oo leh dib-u-qoris. Phenom II 1100T processor.

Si aad u tijaabiso xogta SQL si la mid ah, waxaad u baahan tahay inaad qorto hab kaydsan oo samayn doona gelinta loop. Marka la tijaabinayo MySQL 5.5 (Kaydinta InnoDB), anigoo isticmaalaya habkan waxaan helay tirooyin aan ka badnayn 11K gelin ilbiriqsikii.
Haa, hirgelinta jaantusyada caalamiga ah waxay u muuqdaan kuwo ka adag marka loo eego xogta macluumaadka. Sidaa darteed, xogta macluumaadka warshadaha ee caalamiga ah waxay leeyihiin SQL si ay u fududeeyaan shaqada xogta shaxda.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Guud ahaan, haddii nidaamka xogtu aanu isbeddelin si joogto ah, xawaaraha gelinta ma aha mid muhiim ah oo dhammaan xogta xogta si fudud ayaa loo soo bandhigi karaa qaabka miisaska caadiga ah, ka dibna way fududahay in la shaqeeyo SQL, maadaama ay bixiso heer sare oo la taaban karo. .

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Xaaladdan gaarka ah waxaan rabay inaan tuso taas Globals waxay u dhaqmi karaan sidii dhisme si ay u abuuraan xog-ururin kale. Sida isu-duwaha kaas oo luuqado kale lagu qori karo. Halkan waxaa ah tusaalooyin sida aad u abuuri karto analoogyada caalamiga ah qiimaha muhiimka ah, liisaska, sets, tabular, database-oriented document.

Haddii aad u baahan tahay inaad abuurto nooc ka mid ah xogta aan caadiga ahayn ee dadaalka ugu yar, markaa waa inaad u fiirsataa dhinaca caalamiga ah.

3.3 Kiiska gaarka ah

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Waxay u badan tahay inaad qiyaastay: kani waa hirgalinta jaantusyada caalamiga ah. Aynu is barbar dhigno hirgelintan iyo tii hore.

Miisaska geedka laba-heer ah vs. on geed hal-heer ah.

Minusa
Maqaallo

  1. Si gaabis ah gelinta, maadaama aad u baahan tahay inaad dejiso tirada noodhka oo le'eg tirada tiirarka.
  2. Isticmaalka booska diskka oo badan. Maaddaama tusmooyinka caalamiga ah (loo fahmay sida tusmooyinka array) ee leh magacyada tiiradaha ay qaadanayaan booska diskka oo lagu koobay saf kasta.

  1. Helitaanka degdega ah ee qiyamka tiirarka shakhsi ahaaneed, maadaama aysan jirin baahi loo qabo in la kala saaro xadhigga. Marka loo eego imtixaanadeyda, waxay 11,5% ka dhakhso badan tahay 2 tiir iyo in ka badan oo tiro badan oo tiirar ah.
  2. Way fududahay in la beddelo xogta schema
  3. kood cad oo badan

Вывод: maaha qof walba. Maadaama xawaaruhu uu yahay mid ka mid ah faa'iidooyinka ugu muhiimsan ee caalamiga ah, waxaa jira wax yar oo ku saabsan isticmaalka hirgelintan, sababtoo ah waxay u badan tahay inay ka dhaqso badan tahay miisaska xogta xogta.

3.4 Kiis guud. Geedo iyo geedo la amray

Qaab dhismeed kasta oo xog ah oo lagu matali karo geed ahaan ayaa si fiican ugu habboon caalamka.

3.4.1 Shayooyin leh mawduucyo

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2

Tani waa aagga isticmaalka dhaqameed ee caalamiga ah. Dhanka caafimaadka waxaa jira tiro aad u badan oo ah cudurro, dawooyin, astaamo, iyo hababka daawaynta. Waa caqli-darro in la abuuro miis leh milyan beerood oo bukaan kasta ah. Waxaa intaa dheer, 99% beeruhu way madhnaan doonaan.

Bal qiyaas xogta SQL ee miisaska: "bukaanka" ~ 100 beerood, "Daawooyin" - 000 beeraha, "Therapy" - 100 beeraha, "Dhibaatada" - 000 beeraha, iwm. iyo wixi la mida. Ama waxaad abuuri kartaa xog ururin kumanaan miisas ah, mid walbana loogu talagalay nooc gaar ah oo bukaan ah (oo way is dulmari karaan!), Daawaynta, daawooyinka, iyo kumanaan kale oo miisas ah oo loogu talagalay isku xirka miisaskan.

Globals waxay ku habboon yihiin daawada, maadaama ay kuu oggolaanayaan inaad u abuurto bukaan kasta sharaxaad sax ah oo ku saabsan taariikhdiisa caafimaad, daweyno kala duwan, iyo ficillada daawooyinka, qaabka geedka, iyada oo aan lumin meel bannaan oo dheeraad ah oo ku yaal tiirar madhan, sida noqo kiis kiis la xidhiidha.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Isticmaalka caalamiga ah waa ku habboon tahay in la abuuro xog ururin xogta dadka ku saabsan, marka ay muhiim tahay in la ururiyo oo la habeeyo ugu badnaan macluumaadka kala duwan ee ku saabsan macmiilka. Tani waa baahi loo qabo dawooyinka, bangiyada, suuq-geynta, kaydinta iyo meelaha kale

.
Dabcan, SQL waxaad sidoo kale ku dayan kartaa geed leh dhowr miis oo kaliya (EAV, 1,2,3,4,5,6,7,8,9,10), si kastaba ha ahaatee tani aad ayay uga dhib badan tahay wayna noqon doontaa mid gaabis ah. Asal ahaan, waa inaad qortaa mid caalami ah oo ka shaqeeya miisaska oo aad ku qariso dhammaan shaqada miisaska hoostiisa lakabka abstraction. Waa khalad in lagu daydo tignoolajiyada heerka hoose (globals) iyadoo la isticmaalayo tignoolajiyada heerka sare ah (SQL). Aan habboonayn.

Wax qarsoodi ah maaha in bedelida xogta xogta ee miisaska waaweyn (BEDDELKA SHAXDA) ay qaadan karto waqti cadaalad ah. MySQL, tusaale ahaan, waxa uu sameeyaa ALTER TABLE ADD|COLUMN-KA DEJINTA isagoo gabi ahaanba ka koobiyaynaya macluumaadka miiskii hore una gudbaya miiska cusub (la tijaabiyay MyISAM, matoorada InnoDB). Kaas oo ku xidhi kara xog-ururin shaqaynaysa balaayiin diiwaan gelineed maalmo, haddaysan ahayn toddobaadyo.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2Beddelidda qaab dhismeedka xogta haddii aan isticmaalno Globals waxba naguma kacayso. Waqti kasta waxaan ku dari karnaa wax kasta oo cusub oo aan u baahanahay shay kasta, heer kasta oo kala sareynta. Isbeddellada la xidhiidha magac-beddelka laamaha waxa lagu socodsiin karaa xagga dambe ee kaydka xogta ee socda.


Sidaa darteed, marka ay timaado kaydinta walxaha leh tiro badan oo hanti ikhtiyaari ah, caalamiyadu waa doorasho weyn.

Intaa waxaa dheer, aan ku xasuusiyo in gelitaanka mid ka mid ah guryaha ay tahay mid degdeg ah, sababtoo ah adduunka oo dhan waddooyinka oo dhan waa B-geedo.

Xog-ururinta caalamiga ah, guud ahaan, waa nooc ka mid ah kaydka dukumeentiga ku jihaysan ee awood u leh in lagu kaydiyo macluumaadka kala sareynta. Sidaa darteed, xog-ururinta dukumeentiyadu waxay la tartami karaan kuwa caalamiga ah xagga kaydinta diiwaannada caafimaadka. Laakiin weli sidii hore maahaAynu u soo qaadanno MongoDB is barbar dhig. In domain this waxay ku luminaysaa caalamka sababaha soo socda awgood:

  1. Cabbirka dukumeentiga Qaybta kaydinta waa qoraal qaab JSON ah (si sax ah BSON) oo leh mugga ugu badnaan ilaa 16MB. Xayiraadda waxaa si gaar ah loo sameeyay si xogta JSON aysan hoos u dhigin inta lagu jiro falanqaynta haddii dukumeenti weyn oo JSON ah lagu kaydiyo ka dibna la galo goobaha. Dukumeentigani waa inuu ka kooban yahay dhammaan macluumaadka ku saabsan bukaanka. Dhammaanteen waan ognahay sida ay u dhumuc weyn yihiin diiwaannada bukaanka. Cabbirka kaarka ugu badan ee 16MB wuxuu isla markiiba soo afjarayaa bukaanada kaarkooda cudurku ay ku jiraan faylalka MRI, raajada iyo daraasado kale. Laan ka mid ah caalamka waxaad ku yeelan kartaa gigabytes iyo terabyte oo macluumaad ah. Mabda 'ahaan, waan soo afjari karnaa tan, laakiin waan sii wadi doonaa.
  2. Waqtiga miyir-qabka/isbeddelka/ tirtirka guryaha cusub ee shaxda bukaanka. Keydka noocaan ah waa inuu khariidadda oo dhan u akhriyaa xusuusta (tani waa qaddar aad u badan!), Kala saar BSON, ku dar/badal/tirtir noodhka cusub, cusboonaysii tusmooyinka, ku xidho BSON, oo ku kaydi saxanka. Caalamku wuxuu kaliya u baahan yahay inuu galo hanti gaar ah oo uu maamulo.
  3. Helitaanka degdega ah ee guryaha gaarka ah. Iyada oo leh hanti badan oo dukumeenti ah iyo qaabdhismeedkeeda heerar badan, helitaanka hantida gaarka ah waxay noqon doontaa mid dhakhso badan sababtoo ah xaqiiqda ah in waddo kasta oo caalami ah ay tahay geed B-geed ah. Gudaha BSON, waa inaad si toos ah u kala saartaa dukumeentiga si aad u hesho hantida la rabo.

3.3.2 Associative arrays

Arrays associative (xataa leh arrays buul leh) ayaa si fiican ugu habboon caalamka. Tusaale ahaan, diyaarinta noocan oo kale ah ee PHP ayaa lagu soo bandhigi doonaa sawirka koowaad 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 Warqadaha kala sareynta: XML, JSON

Sidoo kale si fudud ayaa lagu kaydiyaa caalamka. Siyaalo kala duwan ayaa loo dejin karaa kaydinta.

XML
Sida ugu fudud ee XML loogu kala furfuri karo caalamka waa in lagu kaydiyo sifooyinkii summada ee noodhka. Oo haddii si degdeg ah loo galo sifooyin tag loo baahan yahay, markaas waxaan u guuri karnaa laamo gaar ah.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2

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

On COS tani waxay u dhigantaa koodka:

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

Xusuusin: XML, JSON, arrays associative, waxaad la imaan kartaa habab badan oo kala duwan oo lagu soo bandhigo caalamka. Xaaladdan oo kale, kama aynaan muujin sida ay u kala horreeyaan tag-hoosaadka ku jira qoraalka qoraalka. Caalamka ^xml subtags waxaa loo soo bandhigi doonaa siday u kala horeeyaan alifbeetada. Si aad si adag uga tarjumto amarka, waxaad isticmaali kartaa, tusaale ahaan, bandhiga soo socda:

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2
JSON.
Sawirka ugu horreeya ee qaybta 3.3.1 wuxuu muujinayaa milicsiga dukumeentiga JSON:

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

3.3.4 Qaab dhismeedyo isku mid ah oo ay ku xidhan yihiin xidhiidhada kala sareynta

Tusaalooyinka: qaab dhismeedka xafiisyada iibka, goobta ay dadku ku sugan yihiin qaab dhismeedka MLM, kaydka kaydka shaxanka.

Debuts database. Waxaad isticmaali kartaa qiyaasta xoogga istaroogga sida qiimaha index of noode caalami ah. Kadibna, si loo doorto dhaqdhaqaaqa ugu xoogan, waxay ku filnaan doontaa in la doorto laanta miisaanka ugu weyn. Caalamka, dhammaan laamaha heer kasta waxaa lagu kala saarayaa xoog dhaqaaq.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2

Qaab dhismeedka xafiisyada iibka, qaab dhismeedka dadka MLM. Nodes waxay kaydin karaan qiyamka kaydinta qaarkood kuwaas oo ka tarjumaya sifooyinka geed-hoosaadka oo dhan. Tusaale ahaan, mugga iibka ee geed hoosaadka la bixiyay. Waqti kasta waxaan heli karnaa tiro ka tarjumaysa guulaha laan kasta.

Globals waa seefo-khasna u ah kaydinta xogta. Geedaha. Qaybta 2

4. Xaaladdee ayaa ugu faa'iido badan in la isticmaalo caalamka?

Tiirka koowaad wuxuu soo bandhigayaa kiisaska aad ka heli doonto koror xawli ah oo la taaban karo adigoo isticmaalaya caalami, iyo tan labaad marka naqshadeynta ama qaabka xogta la fududeeyo.

Xawaaraha
Fududeynta habaynta/soo bandhigida xogta

  1. Gelida [oo si toos ah u kala soocida heer kasta], [tusmaynta furaha sare]
  2. Masaarida geedaha hoose
  3. Shayooyin leh guryo badan oo buul leh oo u baahan gelitaanka shakhsi ahaaneed
  4. Qaab dhismeedka kala sareynta leh oo awood u leh inuu ka gudbo laamaha ilmaha ee laan kasta, xitaa kuwa aan jirin
  5. Qoto-dheer-maridda koowaad ee geedaha hoose
  1. Shayooyin/hay'ado leh tiro aad u badan oo ikhtiyaari ah [iyo/ama buul leh] hanti/hay'ado
  2. Xog-qorshe-yar. Marka guryo cusub ay badanaa soo baxaan oo kuwii hore la waayo.
  3. Waxaad u baahan tahay inaad abuurto xog ururin gaar ah.
  4. Saldhigyada dariiqyada iyo geedaha go'aannada. Marka ay ku habboon tahay in lagu matalo waddooyinka geed ahaan.
  5. Meesha laga saarayo qaababka kala sareynta iyadoon la isticmaalin soo noqnoqoshada

Sii wadista "Globals waa seefo-khasnado u ah kaydinta xogta. Nidaamyo dhuuban. Qaybta 3".

Afeef: Maqaalkan iyo faallooyinkayga ku saabsan waa ra'yigeyga oo aan wax xiriir ah la lahayn jagada rasmiga ah ee Shirkadda InterSystems.

Source: www.habr.com

Add a comment