Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Ho qala - sheba karolo ea 1.

3. Mefuta e fapaneng ea libopeho ha u sebelisa li-globals

Sebopeho se kang sefate se laetsoeng se na le linyeoe tse sa tšoaneng tse khethehileng. A re nahaneng ka tse nang le molemo o sebetsang ha ho sebetsa le li-globals.

3.1 Nyeoe e khethehileng 1. Node e le 'ngoe e se nang makala


Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Li-globals li ka sebelisoa eseng feela joalo ka sehlopha, empa hape le joalo ka mefuta e tloaelehileng. Ka mohlala, joalo ka counter:

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

Tabeng ena, lefats'e, ntle le moelelo oa eona, le lona le ka ba le makala. E mong ha a behelle e mong ka thoko.

3.2 Nyeoe e khethehileng 2. Sefate se le seng le makala a mangata

Ka kakaretso, sena ke motheo oa bohlokoa oa bohlokoa. Mme haeba re boloka palo ea boleng e le boleng, re tla fumana tafole e tloaelehileng haholo e nang le senotlolo sa mantlha.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2

Ho kenya tšebetsong tafole ea li-globals, re tla tlameha ho iketsetsa mela ka borona ho tsoa ho boleng ba kholomo, ebe re e boloka lefatšeng ka bophara re sebelisa senotlolo sa mantlha. Ho etsa hore ho khonehe ho arola khoele ka likholomo hape ha u bala, u ka sebelisa:

  1. litlhaku tsa delimiter.
    Set ^t(id1) = "col11/col21/col31"
    Set ^t(id2) = "col12/col22/col32"
  2. kemiso e thata eo ho eona tšimo ka 'ngoe e nkang palo e reriloeng esale pele ea li-byte. Joalo ka ha ho etsoa li-database tsa likamano.
  3. mosebetsi o khethehileng $LB (e fumanehang ho Cache), e hlahisang letoto la litekanyetso.
    Set ^t(id1) = $LB("col11", "col21", "col31")
    Set ^t(id2) = $LB("col12", "col22", "col32")

Ho khahlisang, ha ho thata ho sebelisa li-globals ho etsa ho hong ho ts'oanang le li-index tsa bobeli ho database tsa likamano. Ha re bitse li-index tsa libopeho tse joalo li-globals. Index global ke sefate se thusang bakeng sa masimo a batloang kapele ao e seng karolo ea senotlolo sa mantlha sa lefats'e. Ho e tlatsa le ho e sebelisa, o hloka ho ngola khoutu e eketsehileng.

Ha re theheng index ea lefats'e kholomong ea pele.

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

Joale, ho batla tlhahisoleseling ka potlako kholomong ea pele, re tlameha ho sheba lefats'e ^i 'me u fumane linotlolo tsa mantlha (id) tse tsamaellanang le boleng bo lakatsehang ba kholomo ea pele.

Ha re kenya boleng, re ka etsa hang-hang boleng le index ea lefats'e bakeng sa likarolo tse hlokahalang. 'Me bakeng sa ho tšepahala, a re e phuthele kaofela ka transaction.

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

Lintlha tse mabapi le mokhoa oa ho e etsa ho M litafole tsa lefatše, ho etsisa li-index tsa bobeli.

Litafole tse joalo li tla sebetsa ka potlako joaloka litsing tsa khale (kapa ka potlako) haeba mesebetsi ea ho kenya / ho ntlafatsa / ho hlakola mela e ngotsoe ka COS / M 'me e hlophisitsoe.Ke hlahlobile polelo ena ka liteko ka bongata INSERT le KHETHA ka har'a tafole e le 'ngoe ea likholomo tse peli, ho kenyelletsa le ho sebelisa litaelo tsa TSTART le TCOMMIT (litšebelisano).

Ha ke so leke maemo a thata ho feta a nang le phihlello ka nako e le 'ngoe le li-transactions tse tšoanang.

Ntle le ho sebelisa litšebelisano, tekanyo ea ho kenya e ne e le 778 ho kenya / ea bobeli ho litekanyetso tse limilione.
Ka boleng ba limilione tse 300 - 422 e kenya / motsotsoana.

Ha u sebelisa litšebelisano - 572 kenya / ea bobeli bakeng sa ho kenya 082M. Ts'ebetso eohle e entsoe ho tsoa ho khoutu ea M e hlophisitsoeng.
Li-hard drive li tloaelehile, eseng SSD. RAID5 e nang le Write-back. Phenom II 1100T processor.

Ho lekola database ea SQL ka mokhoa o ts'oanang, o hloka ho ngola mokhoa o bolokiloeng o tla etsa li-insection ka loop. Ha ke leka MySQL 5.5 (polokelo ea InnoDB), ke sebelisa mokhoa ona ke fumane linomoro tse sa feteng 11K ka motsotsoana.
Ee, ho kengoa ts'ebetsong ha litafole tsa lefats'e ho shebahala ho rarahane ho feta litsing tsa litaba tsa likamano. Ka hona, li-database tsa indasteri tse mabapi le lefats'e li na le phihlello ea SQL ho nolofatsa mosebetsi ka data ea tabular.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Ka kakaretso, haeba schema ea data e ke ke ea fetoha khafetsa, lebelo la ho kenya ha le bohlokoa 'me database eohle e ka emeloa habonolo ka mokhoa oa litafole tse tloaelehileng, joale ho bonolo ho sebetsa le SQL, kaha e fana ka boemo bo phahameng ba ho tlosoa. .

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Tabeng ena e khethehileng ke ne ke batla ho bontša hore globals e ka sebetsa joalo ka sehahi bakeng sa ho theha marang-rang a mang. Joalo ka sekopanyi seo lipuo tse ling li ka ngoloang ka sona. Mehlala ke ena ea hore na u ka etsa li-analogue joang lefatšeng ka bophara boleng ba bohlokoa, manane, li-sete, tabular, li-database tse shebaneng le litokomane.

Haeba o hloka ho theha mofuta o mong oa database o sa tloaelehang ka boikitlaetso bo fokolang, o lokela ho sheba ho lefatše.

3.3 Nyeoe e khethehileng 3. Sefate sa mekhahlelo e 'meli, node e' ngoe le e 'ngoe ea boemo ba bobeli e na le palo e tsitsitseng ea makala.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Mohlomong u e hakanyelitse: ena ke ts'ebetsong e 'ngoe ea litafole tsa lefatše. Ha re bapiseng ts'ebetsong ena le e fetileng.

Litafole sefateng sa mekhahlelo e 'meli vs. sefateng sa boemo bo le bong.

Минусы
Плюсы

  1. Butle-butle bakeng sa ho kenya, kaha o hloka ho beha palo ea li-node tse lekanang le palo ea litšiea.
  2. Tšebeliso e eketsehileng ea sebaka sa disk. Kaha li-index tsa lefats'e (tse utloisisoang e le li-index tsa lihlopha) tse nang le mabitso a kholomo li nka sebaka sa disk 'me li kopitsoa bakeng sa mola o mong le o mong.

  1. Phihlello e potlakileng ea boleng ba litšiea ka bomong, kaha ha ho na tlhoko ea ho fetisa khoele. Ho ea ka liteko tsa ka, ke 11,5% ka potlako ho litšiea tse 2 le ho feta ka palo e kholoanyane ea litšiea.
  2. Ho bonolo ho fetola schema ea data
  3. Khoutu e hlakileng haholoanyane

Qetello: eseng bakeng sa bohle. Kaha lebelo ke e 'ngoe ea melemo ea bohlokoa ka ho fetisisa ea lefats'e, ha ho na ntlha ea ho sebelisa ts'ebetsong ena, kaha e ke ke ea sebetsa ka potlako ho feta litafole tsa marang-rang a amanang.

3.4 Nyeoe e akaretsang. Lifate le lifate tse laetsoeng

Sebopeho leha e le sefe sa data se ka emeloa e le sefate se lumellana hantle le li-globals.

3.4.1 Lintho tse nang le lihlooho

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2

Ena ke sebaka sa ts'ebeliso ea setso ea lefats'e. Lefapheng la bongaka ho na le palo e kholo ea maloetse, meriana, matšoao le mekhoa ea phekolo. Ha ho utloahale ho theha tafole e nang le masimo a milione bakeng sa mokuli e mong le e mong. Ho feta moo, 99% ea masimo a tla be a se na letho.

Nahana ka database ea SQL ea litafole: "mokuli" ~ 100 masimo, "Medicine" - 000 masimo, "Therapy" - 100 masimo, "Mathata" - 000 masimo, joalo-joalo. joalo joalo. Kapa u ka etsa database ea litafole tse likete tse ngata, e 'ngoe le e 'ngoe bakeng sa mofuta o itseng oa mokuli ('me li ka kopana!), Liphekolo, meriana, le litafole tse ling tse likete bakeng sa likhokahano lipakeng tsa litafole tsena.

Li-globals li loketse meriana, kaha li u lumella hore u bōpe mokuli e mong le e mong tlhaloso e nepahetseng ea histori ea hae ea bongaka, mekhoa e fapaneng ea phekolo, le liketso tsa meriana, ka mokhoa oa sefate, ntle le ho senya sebaka se eketsehileng sa disk holim'a litšiea tse se nang letho, joalokaha ho ne ho tla. ho ba joalo tabeng ea likamano.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Ho sebelisa li-globals ho bonolo ho theha database e nang le lintlha tse mabapi le batho, ha ho le bohlokoa ho bokella le ho hlophisa boitsebiso bo bongata bo fapaneng ka mofani. Sena se batloa meriana, libanka, mebaraka, polokelo ea litaba le libakeng tse ling

.
Ehlile, ho SQL o ka etsisa sefate ka litafole tse 'maloa feela (EAV, 1,2,3,4,5,6,7,8,9,10), leha ho le joalo sena se rarahane haholo 'me se tla lieha. Ha e le hantle, o tla tlameha ho ngola lefats'e le sebetsang holim'a litafole le ho pata mosebetsi oohle ka litafole tlas'a lera la ho thibela. Ho fosahetse ho etsisa thekenoloji ea boemo bo tlaase (lifatše) ka ho sebelisa theknoloji ea boemo bo holimo (SQL). E sa lokelang.

Ha se lekunutu hore ho fetola schema ea data litafoleng tse kholo (ALTER TABLE) ho ka nka nako e lekaneng. Ka mohlala, MySQL, e na le ALTER TABLE ADD|DROP COLUMN ka ho kopitsa boitsebiso bo tsoang tafoleng ea khale ho ea tafoleng e ncha (e lekiloeng MyISAM, InnoDB dienjini). E ka fanyehang database e sebetsang e nang le lirekoto tse libilione bakeng sa matsatsi, haeba e se libeke.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2Ho fetola sebopeho sa data haeba re sebelisa globals ha re lefelle letho. Ka nako efe kapa efe re ka eketsa thepa efe kapa efe e ncha eo re e hlokang nthong efe kapa efe, maemong afe kapa afe a bolaoli. Liphetoho tse amanang le ho reha mabitso a makala li ka tsamaisoa ka morao ho database e sebetsang.


Ka hona, ha ho tluoa tabeng ea ho boloka lintho tse nang le palo e kholo ea thepa ea boikhethelo, li-globals ke khetho e ntle.

Ho feta moo, e-re ke u hopotse hore ho fihlella leha e le efe ea thepa ke hang-hang, kaha lefatšeng ka bophara litsela tsohle ke lifate tsa B.

Li-database tsa lefats'e, ka kakaretso, ke mofuta oa database o shebaneng le litokomane tse nang le bokhoni ba ho boloka tlhaiso-leseling ea maemo. Ka hona, li-database tse shebaneng le litokomane li ka qothisana lehlokoa le lefatše lefapheng la ho boloka litlaleho tsa bongaka. Empa e ntse e sa tšoane hantleHa re nke MongoDB ho bapisa. Sebakeng sena e lahleheloa ke lefatše ka mabaka a latelang:

  1. Boholo ba tokomane. Karolo ea polokelo e ngotsoe ka mokhoa oa JSON (ka nepo BSON) ka bophahamo ba modumo e ka bang 16MB. Thibelo e entsoe ka ho khetheha e le hore database ea JSON e se ke ea lieha nakong ea ho bala haeba tokomane e kholo ea JSON e bolokiloe ho eona ebe e fumanoa ke masimo. Tokomane ena e lokela ho ba le lintlha tsohle tse mabapi le mokuli. Kaofela rea ​​tseba hore na litlaleho tsa mokuli li ka ba boima hakae. Boholo ba karete ea boholo ba 16MB hang-hang bo felisa bakuli bao karete ea bona ea lefu e kenyelletsang lifaele tsa MRI, lisebelisoa tsa X-ray le lithuto tse ling. Lekaleng le le leng la lefats'e o ka ba le li-gigabytes le li-terabyte tsa tlhahisoleseling. Ha e le hantle, re ka felisa sena, empa ke tla tsoela pele.
  2. Nako ea ho lemoha / phetoho / ho tlosoa ha thepa e ncha ka chate ea mokuli. Database e joalo e tlameha ho bala 'mapa kaofela mohopolong (ena ke chelete e ngata!), Hlalosa BSON, eketsa / fetola / hlakola node e ncha, ntlafatsa indexes, e kenye ho BSON, 'me u e boloke disk. Lefatše le hloka feela ho fihlella thepa e itseng le ho e laola.
  3. Ho fihlella kapele ho thepa ea motho ka mong. Ka thepa e ngata tokomaneng le sebopeho sa eona sa maemo a mangata, phihlello ea thepa ea motho ka mong e tla potlaka ka lebaka la hore tsela e 'ngoe le e' ngoe lefatšeng ka bophara ke sefate sa B. Ho BSON, o tlameha ho fetisa tokomane ka mokhoa o hlakileng ho fumana thepa eo u e batlang.

3.3.2 Mekhahlelo ea kopanelo

Associative Arrays (esita le ka lihlaha tse hlophiloeng) li lumellana hantle le li-globals. Mohlala, lethathamo le joalo le tsoang ho PHP le tla hlahisoa setšoantšong sa pele sa 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 Litokomane tsa Hierarchical: XML, JSON

E boetse e bolokiloe habonolo lefatšeng ka bophara. E ka beoa ka litsela tse fapaneng bakeng sa polokelo.

xML
Mokhoa o bonolo ka ho fetisisa oa ho bolisa XML hore e be li-globals ke ho boloka litšoaneleho tsa tag ka har'a li-node. 'Me haeba ho fihlella ka potlako ho litšoaneleho tsa li-tag ho hlokahala, joale re ka li fetisetsa makaleng a arohaneng.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2

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

Ho COS sena se tla tsamaellana le khoutu:

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

Tlhaloso: Bakeng sa XML, JSON, li-arrays tse kopanetsoeng, u ka tla le mekhoa e mengata e fapaneng ea ho hlahisa li-globals. Tabeng ena, ha rea ​​ka ra bonahatsa tatellano ea li-subtag tse ka har'a lebokose la lintlha. Lefatšeng ka bophara ^xml li-subtag li tla hlahisoa ka tatellano ea alfabeta. Ho bonahatsa tatellano ka tieo, o ka sebelisa, mohlala, pontšo e latelang:

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2
JSON.
Setšoantšo sa pele se tsoang karolong ea 3.3.1 se bontša setšoantšo sa tokomane ena ea JSON:

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

3.3.4 Libopeho tse tšoanang tse hokahaneng ke likamano tsa maemo a phahameng

Mehlala: sebopeho sa liofisi tsa thekiso, sebaka sa batho ka har'a sebopeho sa MLM, database ea menyetla ea ho bula chess.

Debuts database. U ka sebelisa khakanyo ea matla a stroke joalo ka boleng ba index ea node ea lefats'e. Joale, e le hore u khethe ho falla ho matla ka ho fetisisa, ho tla ba ho lekaneng ho khetha lekala le boima bo boholo ka ho fetisisa. Lefatšeng, makala ohle boemong bo bong le bo bong a tla hlophisoa ka matla a ho falla.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2

Sebopeho sa liofisi tsa thekiso, sebopeho sa batho ba MLM. Li-node li ka boloka boleng bo itseng ba caching bo bonts'ang litšobotsi tsa subtree kaofela. Ka mohlala, boholo ba thekiso ea subtree e fanoeng. Ka nako efe kapa efe re ka fumana palo e bonts'ang likatleho tsa lekala lefe kapa lefe.

Globals ke lisabole tsa matlotlo bakeng sa ho boloka data. Lifate. Karolo ea 2

4. Ke maemong afe moo ho leng molemo ka ho fetisisa ho sebelisa lefatše?

Kholomo ea pele e fana ka maemo ao ho ona u tla fumana phaello e kholo ka ho sebelisa li-globals, 'me ea bobeli ha moralo kapa mohlala oa data o tla nolofalloa.

Lebelo
Bonolo ba ts'ebetso ea data / tlhahiso

  1. Kenyelletso [ka ho hlopha ka boiketsetso boemong bo bong le bo bong], [indexing by master key]
  2. Ho tlosa subtrees
  3. Lintho tse nang le meaho e mengata ea lihlaha tse hlokang phihlello ea motho ka mong
  4. Sebopeho sa Hierarchical se nang le bokhoni ba ho pota-pota makala a bana ho tloha lekaleng leha e le lefe, esita le a seng a le teng
  5. Phallo e tebileng ea pele ea li-subtrees
  1. Lintho/mekhatlo e nang le palo e kholo ea boikhethelo [le/kapa sehlaha] thepa/mekhatlo
  2. Lintlha tse se nang schema. Ha thepa e ncha e ka hlaha hangata mme ea khale e nyamela.
  3. U hloka ho theha database ea tloaelo.
  4. Metheo ea litsela le lifate tsa liqeto. Ha ho loketse ho emela litsela joaloka sefate.
  5. Ho tlosa meaho ya maemo a phahameng ntle le ho sebedisa phetetso

Tsoelo-pele “Mafatše ke lisabole tsa letlotlo bakeng sa ho boloka boitsebiso. Lihlopha tse nyenyane. Karolo ea 3".

ikgololo: Sengoliloeng sena le litlhaloso tsa ka ho sona ke maikutlo a ka mme ha li amane le boemo ba semmuso ba InterSystems Corporation.

Source: www.habr.com

Eketsa ka tlhaloso