Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1 Ang tinuod nga database swords - globals - dugay na nga nahibal-an, apan gamay ra ang nahibal-an kung giunsa kini gamiton nga epektibo o wala gyud tag-iya kini nga superweapon.

Kung mogamit ka og globals sa pagsulbad sa mga problema nga maayo kaayo nila, makab-ot nimo ang talagsaong mga resulta. Bisan sa pagkaproduktibo o sa pagpayano sa solusyon sa problema (1, 2).

Ang mga global usa ka espesyal nga paagi sa pagtipig ug pagproseso sa datos, hingpit nga lahi sa mga lamesa sa SQL. Nagpakita sila niadtong 1966 sa pinulongan M(UMPS) (ebolusyonaryong kalamboan - Cache ObjectScript, human niini COS) sa medikal nga database ug anaa gihapon aktibo nga gigamit, ug nakasulod usab sa ubang mga lugar diin gikinahanglan ang kasaligan ug taas nga pasundayag: pinansya, pamatigayon, ug uban pa.

Ang mga global sa modernong DBMS nagsuporta sa mga transaksyon, pag-log, pagkopya, ug pagbahin. Mga. sila mahimong gamiton sa pagtukod sa moderno, kasaligan, apod-apod ug paspas nga mga sistema.

Ang mga global wala maglimite kanimo sa relational nga modelo. Gihatagan ka nila og kagawasan sa paghimo sa mga istruktura sa datos nga na-optimize alang sa piho nga mga buluhaton. Alang sa daghang mga aplikasyon, ang intelihente nga paggamit sa mga global mahimo’g usa ka sekreto nga hinagiban, nga naghatud sa pasundayag nga mahimo ra madamgo sa mga developer sa relational nga aplikasyon.

Ang mga global isip usa ka paagi sa pagtipig sa datos mahimong magamit sa daghang modernong mga programming language, parehas nga taas ug ubos nga lebel. Busa, niining artikuloha espesipikong ipunting nako ang mga global, ug dili ang sinultian nga gigikanan nila kaniadto.

2. Giunsa pagtrabaho ang mga global

Atong sabton una kung giunsa paglihok ang mga global ug kung unsa ang ilang kusog. Ang mga global mahimong tan-awon gikan sa lainlaing mga punto sa panglantaw. Niining bahina sa artikulo atong tan-awon sila ingong mga kahoy. O sama sa hierarchical data bodega.

Sa yanong pagkasulti, ang usa ka global usa ka padayon nga han-ay. Usa ka laray nga awtomatikong gitipigan sa disk.
Lisud mahanduraw ang usa ka butang nga mas simple alang sa pagtipig sa datos. Sa code (sa COS/M nga mga pinulongan) lahi kini sa usa ka regular nga associative array lamang sa simbolo ^ atubangan sa ngalan.

Aron makatipig sa datos sa tibuok kalibutan, dili nimo kinahanglan nga makat-on sa SQL query nga pinulongan; ang mga sugo alang sa pagtrabaho uban kanila yano ra kaayo. Matun-an sila sa usa ka oras.

Magsugod ta sa pinakasimple nga pananglitan. Usa ka lebel nga punoan nga adunay 2 nga mga sanga. Ang mga pananglitan gisulat sa COS.

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

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



Kung gisulud ang kasayuran sa usa ka global (Set command), 3 ka butang ang awtomatikong mahitabo:

  1. Pagtipig data sa disk.
  2. Pag-indeks. Ang naa sa parentheses mao ang yawe (sa English nga literatura - "subscript"), ug sa tuo sa parehas mao ang kantidad ("node value").
  3. Paghan-ay. Ang datos gihan-ay pinaagi sa yawe. Sa umaabot, kung moagi sa laray, ang una nga elemento mao ang "Sergey Smith", ug ang ikaduha "John Sidorov". Kung nakadawat usa ka lista sa mga tiggamit gikan sa tibuuk kalibutan, ang database dili mag-usik sa oras sa paghan-ay. Dugang pa, mahimo nimong hangyoon ang output sa usa ka gihan-ay nga lista, sugod sa bisan unsang yawe, bisan ang usa nga wala (ang output magsugod gikan sa unang tinuod nga yawe, nga moabut human sa wala nga usa).

Ang tanan nga kini nga mga operasyon dali nga mahitabo. Sa akong kompyuter sa balay nakakuha ako mga kantidad hangtod sa 750 nga pagsal-ot / segundo sa usa ka proseso. Sa mga multi-core nga mga processor ang mga kantidad mahimong maabot napulo ka milyon mga insert/sec.

Siyempre, ang katulin sa pagsal-ot mismo dili kaayo isulti. Mahimo nimo, pananglitan, dali kaayo nga pagsulat sa impormasyon sa mga text file - sama niini sumala sa mga hungihong Ang pagproseso sa visa nagtrabaho. Apan sa kaso sa mga global, nakakuha kami usa ka istruktura nga gi-index nga pagtipig ingon usa ka sangputanan, nga dali ug dali nga magamit sa umaabot.

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

  • Ang pinakadako nga kusog sa mga global mao ang katulin diin ang mga bag-ong node mahimong ipasok.
  • Ang datos sa tibuok kalibutan kanunay nga gi-index. Ang paglatas kanila, sa usa ka lebel ug sa kahiladman sa kahoy, kanunay nga paspas.

Atong idugang ang pipila ka mga sanga sa ikaduha ug ikatulo nga lebel sa global.

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

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

Dayag nga ang mga multi-level nga mga kahoy mahimong matukod base sa globals. Dugang pa, ang pag-access sa bisan unsang node hapit dayon tungod sa auto-indexing sa panahon sa pagsulod. Ug sa bisan unsang lebel sa kahoy, ang tanan nga mga sanga gisunud sa yawe.

Sama sa imong makita, ang impormasyon mahimong tipigan sa usa ka yawe ug usa ka bili. Ang kinatibuk-ang gitas-on sa yawe (ang sumada sa mga gitas-on sa tanang mga indeks) mahimong maabot 511 byte, ug ang mga mithi 3.6 MB alang sa Cache. Ang gidaghanon sa lebel sa kahoy (gidaghanon sa mga sukod) mao ang 31.

Laing makaiikag nga punto. Mahimo ka magtukod usa ka kahoy nga wala ipiho ang mga kantidad sa mga node sa taas nga lebel.

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

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

Ang walay sulod nga mga lingin maoy mga node nga walay gi-assign nga bili.

Aron mas masabtan ang mga global, atong itandi kini sa ubang mga kahoy: garden trees ug file system name trees.

Atong itandi ang mga kahoy sa mga global nga adunay labing pamilyar nga hierarchical nga istruktura sa amon: sa ordinaryong mga kahoy nga nagtubo sa mga tanaman ug umahan, ingon man sa mga file system.

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

Subong sang makita naton sa mga kahoy sa hardin, ang mga dahon kag mga bunga makita lamang sa mga punta sang mga sanga.
Mga sistema sa file - ang kasayuran gitipigan lamang sa mga tumoy sa mga sanga, nga hingpit nga kwalipikado nga mga ngalan sa file.

Ug ania ang global nga istruktura sa datos.

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1Mga kalainan:

  1. Internal nga mga node: Ang impormasyon sa usa ka global mahimong tipigan sa matag node, dili lamang sa mga tumoy sa mga sanga.
  2. Mga eksternal nga node: Ang global kinahanglan adunay gihubit nga mga kantidad sa mga tumoy sa mga sanga, samtang ang FS ug mga punoan sa tanaman wala.



Sa mga termino sa internal nga mga node, makaingon kita nga ang istruktura sa global usa ka superset sa istruktura sa mga punoan sa ngalan sa mga file system ug mga punoan sa tanaman. Mga. mas flexible.

Sa kinatibuk-an, ang global gimando nga kahoy nga adunay katakus sa pagtipig sa datos sa matag node.

Aron mas masabtan ang buhat sa mga global, hunahunaa kung unsa ang mahitabo kung ang mga tiglalang sa mga sistema sa file mogamit usa ka pamaagi nga parehas sa mga global sa pagtipig sa kasayuran?

  1. Ang pagtangtang sa usa ka file sa usa ka direktoryo awtomatik nga mapapas ang direktoryo, ingon man ang tanan nga nag-una nga mga direktoryo nga adunay sulod lamang nga usa ka direktoryo nga bag-o lang natangtang.
  2. Dili na kinahanglan ang mga direktoryo. Adunay yano nga mga file nga adunay mga subfile ug mga file nga walay mga subfile. Kon itandi sa ordinaryong kahoy, nan ang matag sanga mahimong bunga.

    Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

  3. Ang mga butang sama sa README.txt nga mga file mahimong dili kinahanglan. Ang tanan nga kinahanglan isulti bahin sa mga sulud sa direktoryo mahimong isulat sa direktoryo nga file mismo. Sa luna sa agianan, ang ngalan sa file dili mailhan gikan sa ngalan sa direktoryo, mao nga posible nga makaagi gamit ang mga file lang.
  4. Ang katulin sa pagtangtang sa mga direktoryo nga adunay mga salag nga mga subdirektoryo ug mga file modako pag-ayo. Daghang mga higayon sa Habré adunay mga artikulo bahin sa kung unsa ka dugay ug lisud ang pagtangtang sa milyon-milyon nga gagmay nga mga file (1, 2). Bisan pa, kung maghimo ka usa ka pseudo-file nga sistema sa usa ka global, magkinahanglan kini mga segundo o mga tipik niini. Kung gisulayan nako ang pagtangtang sa mga subtree sa usa ka kompyuter sa balay, gikuha niini ang 1-96 milyon nga mga node gikan sa usa ka duha ka lebel nga punoan sa usa ka HDD (dili SSD) sa 341 segundo. Dugang pa, naghisgot kami bahin sa pagtangtang sa bahin sa kahoy, ug dili lamang sa tibuuk nga file nga adunay mga global.

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1
Ang pagtangtang sa mga subtree usa pa ka lig-on nga punto sa globals. Dili nimo kinahanglan ang recursion alang niini. Kini mahitabo sa dili katuohan nga dali.

Sa among kahoy mahimo kini sa mando Patya.

Kill ^a("+7926X")

Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 1

Para sa mas maayo nga pagsabot kon unsa nga mga aksyon ang anaa kanato sa tibuok kalibutan, ako mohatag og usa ka mubo nga lamesa.

Panguna nga mga mando ug mga gimbuhaton alang sa pagtrabaho kauban ang mga global sa COS

Ibutang
Pagbutang sa mga sanga sa usa ka node (kon wala pa gihubit) ug mga kantidad sa node

Maghiusa
Pagkopya sa usa ka subtree

Patya
Pagtangtang sa usa ka subtree

ZKill
Pagtangtang sa bili sa usa ka piho nga node. Ang subtree nga migawas gikan sa node dili matandog

$Pangutana
Kompleto nga paglatas sa kahoy, pag-adto sa lawom nga bahin sa kahoy

$Pag-order
Pagtabok sa mga sanga sa usa ka piho nga node

$Data
Pagsusi kung ang usa ka node gihubit

$Pagdugang
Atom nga pagdugang sa usa ka kantidad sa node. Aron malikayan ang pagbuhat ug pagbasa ug pagsulat, para sa ACID. Bag-o lang girekomendar nga usbon sa $Sequence

Salamat sa imong pagtagad, andam kami sa pagtubag sa imong mga pangutana.

Disclaimer: Kini nga artikulo ug ang akong mga komento niini mao ang akong opinyon ug walay kalabotan sa opisyal nga posisyon sa InterSystems Corporation.

Pagpadayon Ang mga global kay mga treasure-sword para sa pagtipig sa datos. Mga kahoy. Bahin 2. Mahibal-an nimo kung unsang mga klase sa datos ang mahimong ipakita sa mga global ug kung unsang mga buluhaton ang ilang gihatag nga labing kaayo nga benepisyo.

Source: www.habr.com

Idugang sa usa ka comment