Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1 Şûrên databasê yên rastîn - gerdûnî - ji mêj ve têne zanîn, lê hîn jî hindik kes dizanin ka meriv wan çawa bi bandor bikar tîne an jî qet xwediyê vê superçekê ne.

Ger hûn di çareserkirina wan pirsgirêkên ku ew bi rastî jê re baş in de gerdûnan bikar bînin, hûn dikarin encamên berbiçav bi dest bixin. An di hilberîneriyê de an jî di hêsankirina çareseriya pirsgirêkê de (1, 2).

Global rêgezek taybetî ya hilanîn û hilanîna daneyan e, ji tabloyên di SQL de bi tevahî cûda ye. Di sala 1966an de hatin ziman M(UMPS) (pêşveçûna pêşveçûnê - Cache ObjectScript, li vir COS) di databasa bijîjkî de ye û hîn jî li wir e çalak tê bikaranîn, û her weha ketiye hin deverên din ên ku pêbawerî û performansa bilind hewce ne: darayî, bazirganî, hwd.

Gerdûnî di DBMS-yên nûjen de danûstandin, têketin, dubarekirin, û dabeşkirinê piştgirî dikin. Ewan. ew dikarin ji bo avakirina pergalên nûjen, pêbawer, belavbûyî û bilez werin bikar anîn.

Gerdûnî we bi modela pêwendiyê sînordar nakin. Ew azadiyê didin we ku hûn strukturên daneyê yên ku ji bo karên taybetî xweştir in pêşve bibin. Ji bo gelek serîlêdanan, karanîna hişmend a gerdûnan bi rastî dikare bibe çekek veşartî, performansa ku pêşdebirên serîlêdana têkildar tenê dikarin xeyal bikin peyda bike.

Global wekî rêyek hilanîna daneyan dikare di gelek zimanên bernamesaziya nûjen de, hem asta bilind û hem jî di asta nizm de were bikar anîn. Ji ber vê yekê, di vê gotarê de ez ê bi taybetî li ser gerdûnan bisekinim, ne li ser zimanê ku ew berê jê hatine.

2. Gerdûnî çawa kar dikin

Werin em pêşî fam bikin ka gerdûn çawa dixebitin û hêza wan çi ne. Mirov dikare bi nêrînên cûda li gerdûnan were temaşe kirin. Di vê beşa gotarê de em ê wekî daran li wan binêrin. An jî wekî embarên daneya hiyerarşîk.

Ji bo ku bi hêsanî were gotin, gerdûnî komek domdar e. Rêzeyek ku bixweber li dîskê tê hilanîn.
Zehmet e ku meriv tiştek hêsantir ji bo hilanîna daneyan xeyal bike. Di kodê de (bi zimanên COS/M) ew tenê di sembolê de ji rêzek hevgirtî ya birêkûpêk cûda dibe ^ berî navê.

Ji bo tomarkirina daneyan di gerdûnî de, hûn ne hewce ne ku hûn zimanê pirsiyarê SQL fêr bibin, emrên ji bo xebata bi wan re pir hêsan in. Ew dikarin di saetekê de hîn bibin.

Ka em bi mînaka herî hêsan dest pê bikin. Dara yek-asta bi 2 şax. Nimûne di COS de têne nivîsandin.

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"



Dema ku agahdarî têxin nav gerdûnek (fermana Set), 3 tişt bixweber diqewimin:

  1. Daneyên li ser dîskê tomar dike.
  2. Indekskirin. Tiştê ku di nav parantezê de ye kilît e (di edebiyata îngilîzî de - "binnivîs"), û li milê rastê nirx ("nirxa girêk") heye.
  3. Rêzkirin. Daneyên bi mifteyê têne rêz kirin. Di pêşerojê de, dema ku di rêzê de derbas dibe, hêmana yekem dê "Sergey Smith", û ya duyemîn "John Sidorov" be. Dema ku navnîşek bikarhêneran ji gerdûnî werdigire, databas dema dabeşkirinê winda nake. Wekî din, hûn dikarin deranîna navnîşek rêzkirî daxwaz bikin, ku ji her kilîtê dest pê dike, hetta ya tune be jî (derketin dê ji mifta yekem a rastîn, ya ku piştî ya tunebûnê tê, dest pê bike).

Hemî van operasyonan pir zû diqewimin. Li ser komputera xweya malê min di pêvajoyek yekane de heya 750 inserts / sec nirx digirt. Li ser pêvajoyên pir-core nirx dikarin bigihîjin bi deh mîlyonan têxe / sec.

Bê guman, leza têketinê bixwe pir nabêje. Mînakî, hûn dikarin pir zû agahdarî di pelên nivîsê de binivîsin - bi vî rengî rumored Proseskirina vîzeyê dixebite. Lê di mijara gerdûnan de, em wekî encamek hilanînê birêkûpêkkirî digirin, ku dikare di pêşerojê de bi hêsanî û zû pê re were xebitandin.

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

  • Hêza herî mezin a gerdûnan leza ku tê de girêkên nû têne danîn e.
  • Daneyên di gerdûnî de her gav têne navnîş kirin. Derbaskirina wan, hem li yek astê û hem jî di kûrahiya darê de, her gav bilez e.

Ka em çend şaxên din ên asta duyemîn û sêyemîn li gerdûnî zêde bikin.

Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

Eşkere ye ku darên pir-astî dikarin li ser bingeha gerdûnî werin çêkirin. Digel vê yekê, gihandina her girêkek ji ber vekêşana otomatîkî ya di dema danînê de hema hema tavilê ye. Û li her astê darê, hemî şax li gorî mifteyê têne rêz kirin.

Wekî ku hûn dikarin bibînin, agahdarî dikare hem di key û hem jî di nirxek de were hilanîn. Dirêjahiya mifteya giştî (hevdengiya dirêjahiya hemî nîşanan) dikare bigihîje 511 bytes, û nirxan 3.6 MB ji bo Cache. Hejmara astên di darê de (hejmara pîvanan) 31 e.

Xaleke din a balkêş. Hûn dikarin darek ava bikin bêyî ku nirxên girêkên astên jorîn diyar bikin.

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3

Derdorên vala girêkên ku qîmeta wan nehatiye veqetandin in.

Ji bo ku em gerdûnan baştir fêm bikin, werin em wan bi darên din re bidin ber hev: darên baxçe û darên navên pergala pelan.

Werin em darên li ser gerdûnan ên ku ji me re strukturên hiyerarşîk ên herî naskirî ne bidin ber hev: bi darên asayî yên ku li baxçe û zeviyan mezin dibin, û hem jî bi pergalên pelan re.

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

Wekî ku em di darên baxçe de dibînin, pel û fêkî tenê li dawiya çiqilan têne dîtin.
Pergalên pelan - agahdarî tenê li dawiya şaxan, ku navên pelan bi tevahî jêhatî ne, têne hilanîn.

Û li vir avahiya daneyên gerdûnî ye.

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1Cûdahî:

  1. Girêkên navxweyî: agahdariya di gerdûnî de dikare di her girêkekê de were hilanîn, ne tenê li dawiya şaxan.
  2. Girêdanên derve: Gerdûnî divê li dawiya çiqilan nirxên diyarkirî hebin, dema ku FS û darên baxçê ne.



Di warê girêkên hundurîn de, em dikarin bibêjin ku strukturên gerdûnî di pergalên pelan û darên baxçê de strukturek darên navan e. Ewan. nermtir.

Bi gelemperî, gerdûnî ye dara fermankirî bi şiyana hilanîna daneyan di her girêkê de.

Ji bo ku hûn xebata gerdûnan çêtir fam bikin, bifikirin ku dê çi bibe ger afirînerên pergalên pelan nêzîkatiyek mîna gerdûnan bikar bînin da ku agahdarî hilînin?

  1. Jêbirina yek pelê di pelrêçekê de dê pelrêçek bixweber jê bibe, hem jî hemî pelrêçiyên li ser pêvekirî ku tenê pelrêçeka ku tenê jêbirin dihewîne.
  2. Dê hewcedariya peldankan tune be. Dê bi tenê pelên bi binepel û pelên bê binpel hebin. Heger bi dara asayî re were berhev kirin, wê her şaxek bibe fêkî.

    Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

  3. Tiştên mîna pelên README.txt dibe ku ne hewce nebin. Her tiştê ku hewce bû ku li ser naveroka pelrêçê were gotin dikare di pelê pelrêça bixwe de were nivîsandin. Di cîhê rê de, navê pelê ji navê pelrêçê nayê cûda kirin, ji ber vê yekê gengaz bû ku meriv tenê bi pelan re derbas bibe.
  4. Leza jêbirina pelrêçan bi binerdektor û pelên hêlînkirî dê pir zêde bibe. Gelek caran li ser Habré gotar hene ku çiqas dirêj û dijwar e ku meriv bi mîlyonan pelên piçûk jêbirin (1, 2). Lêbelê, heke hûn pergalek pseudo-pelê li ser gerdûnek çêbikin, ew ê saniyeyan an perçeyên wê bigire. Dema ku min jêbirina binerdeyên li ser komputerek malê ceriband, wê di 1 çirkeyê de 96-341 mîlyon girêk ji dara du-ast a HDD-ê (ne SSD) derxist. Wekî din, em behsa jêbirina beşek darê dikin, û ne tenê tevahiya pelê bi gerdûnan re.

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1
Rakirina binerdê xalek din a bihêz a globalan e. Ji bo vê yekê hûn ne hewceyî vegerê ne. Ev pir zû diqewime.

Di dara me de ev dikare bi fermanê were kirin Kûştin.

Kill ^a("+7926X")

Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 1

Ji bo têgihiştina çêtir ka çi kiryar ji me re li ser gerdûnan peyda dibin, ez ê tabloyek kurt pêşkêş bikim.

Ferman û fonksiyonên bingehîn ji bo xebata bi globalan re di COS de

danîn
Sazkirina şaxên girêkekê (heke hîn nehatibe diyarkirin) û nirxên nodê

Bihevkelyan
Kopîkirina binedara

Kûştin
Rakirina binedara

ZKill
Jêbirina nirxa girêkek taybetî. Binedara ku ji girêkê derdikeve nayê destgirtin

$Query
Temamiya darê, diçe kûrahiya darê

$Order
Veguhastina şaxên girêkek taybetî

$Daneyên
Kontrolkirin ka girêkek hatiye diyarkirin

$Zêdebûn
Bi atomî nirxek girêk zêde dike. Ji bo ku ji xwendin û nivîsandinê dûr bixin, ji bo ACID. Di van demên dawî de tê pêşniyar kirin ku biguhezînin $Rêz

Spas ji bo baldariya we, em amade ne ku bersiva pirsên we bidin.

Disclaimer: Ev gotar û şîroveyên min ên li ser wê nerîna min e û ti têkiliya wê bi helwesta fermî ya InterSystems Corporation re tune.

Berdewam dike Global ji bo hilanîna daneyan xezîne-şûr in. Darên. Beş 2. Hûn ê fêr bibin ka kîjan celeb daneyan dikarin li ser gerdûnan werin xuyang kirin û li ser kîjan karan ew feydeya herî zêde peyda dikin.

Source: www.habr.com

Add a comment