ඔබ එම ගැටළු විසඳීම සඳහා ගෝලීය භාවිතා කරන්නේ නම්, ඔවුන් සැබවින්ම දක්ෂයි, ඔබට විශිෂ්ට ප්රතිඵල ලබා ගත හැකිය. ඵලදායිතාවයෙන් හෝ ගැටලුවේ විසඳුම සරල කිරීමේදී (
Globals යනු SQL හි ඇති වගු වලින් සම්පූර්ණයෙන්ම වෙනස් දත්ත ගබඩා කිරීමේ සහ සැකසීමේ විශේෂ ක්රමයකි. ඔවුන් 1966 දී භාෂාවෙන් පෙනී සිටියේය
නවීන ඩීබීඑම්එස් හි ග්ලෝබල් ගණුදෙණු, ලොග් කිරීම, අනුකරණය සහ කොටස් කිරීම සඳහා සහාය දක්වයි. එම. නවීන, විශ්වසනීය, බෙදා හරින ලද සහ වේගවත් පද්ධති තැනීමට ඒවා භාවිතා කළ හැකිය.
Globals ඔබව සම්බන්ධක ආකෘතියට සීමා නොකරයි. ඔවුන් ඔබට නිශ්චිත කාර්යයන් සඳහා ප්රශස්ත කළ දත්ත ව්යුහයන් සංවර්ධනය කිරීමට නිදහස ලබා දේ. බොහෝ යෙදුම් සඳහා, ගෝලීයවල දක්ෂ භාවිතය සැබවින්ම රහස් ආයුධයක් විය හැකි අතර, සම්බන්ධතා යෙදුම් සංවර්ධකයින්ට සිහින දැකිය හැකි කාර්ය සාධනය ලබා දෙයි.
දත්ත ගබඩා කිරීමේ ක්රමයක් ලෙස Globals බොහෝ නවීන ක්රමලේඛන භාෂා වල, ඉහළ මට්ටමේ සහ පහත් මට්ටමේ භාවිතා කළ හැක. එමනිසා, මෙම ලිපියෙන් මම විශේෂයෙන් ගෝලීය වශයෙන් අවධානය යොමු කරමි, ඔවුන් වරක් පැමිණි භාෂාව මත නොවේ.
2. ගෝලීය ක්රියා කරන ආකාරය
අපි මුලින්ම ගෝලීය ක්රියා කරන ආකාරය සහ ඒවායේ ශක්තීන් මොනවාද යන්න තේරුම් ගනිමු. ගෝලීය විවිධ දෘෂ්ටි කෝණයෙන් බැලිය හැකිය. ලිපියේ මෙම කොටසෙහි අපි ඒවා ගස් ලෙස බලමු. නැත්නම් ධුරාවලියේ දත්ත ගබඩා වගේ.
සරලව කිවහොත් ගෝලීය යනු නොනැසී පවතින අරාවකි. තැටියට ස්වයංක්රීයව සුරැකෙන අරාවකි.
දත්ත ගබඩා කිරීම සඳහා සරල දෙයක් සිතීම දුෂ්කර ය. කේතයේ (COS/M භාෂාවලින්) එය සංකේතයේ පමණක් සාමාන්ය ආශ්රිත අරාවකින් වෙනස් වේ ^ නමට පෙර.
ගෝලීය දත්ත සුරැකීමට, ඔබ SQL විමසුම් භාෂාව ඉගෙන ගැනීමට අවශ්ය නොවේ; ඔවුන් සමඟ වැඩ කිරීම සඳහා විධාන ඉතා සරල ය. ඒවා පැයකින් ඉගෙන ගත හැකිය.
අපි සරලම උදාහරණයෙන් පටන් ගනිමු. අතු 2 ක් සහිත තනි මට්ටමේ ගසක්. උදාහරණ COS වලින් ලියා ඇත.
Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"
ගෝලීය (Set command) වෙත තොරතුරු ඇතුළත් කිරීමේදී, දේවල් 3ක් ස්වයංක්රීයව සිදුවේ:
- තැටියට දත්ත සුරැකීම.
- සුචිගත කිරීම. වරහන් තුළ ඇත්තේ යතුරයි (ඉංග්රීසි සාහිත්යයේ - “උප පිටපත”), සහ සමානයන්ගේ දකුණේ අගය (“නෝඩ් අගය”) වේ.
- වර්ග කිරීම. දත්ත යතුර අනුව වර්ග කර ඇත. අනාගතයේදී, අරාව හරහා ගමන් කරන විට, පළමු මූලද්රව්යය "සර්ජි ස්මිත්", සහ දෙවන "ජෝන් සිඩෝරොව්" වනු ඇත. ගෝලීය පරිශීලකයින්ගේ ලැයිස්තුවක් ලැබුණු විට, දත්ත සමුදාය වර්ග කිරීම සඳහා කාලය නාස්ති නොකරයි. එපමනක් නොව, ඔබට ඕනෑම යතුරකින් පටන් ගෙන, නොපවතින එකකින් වුවද වර්ග කළ ලැයිස්තුවක ප්රතිදානය ඉල්ලා සිටිය හැක (ප්රතිදානය ආරම්භ වන්නේ පළමු සැබෑ යතුරෙන් වන අතර එය නොපවතින එකට පසුව එන).
මෙම සියලු මෙහෙයුම් ඇදහිය නොහැකි තරම් ඉක්මනින් සිදු වේ. මගේ නිවසේ පරිගණකයේ මම එක් ක්රියාවලියකදී ඇතුළු කිරීම්/තත්පර 750 දක්වා අගයන් ලබා ගනිමින් සිටියෙමි. බහු-core ප්රොසෙසරවල අගයන් වෙත ළඟා විය හැකිය
ඇත්ත වශයෙන්ම, ඇතුළත් කිරීමේ වේගය බොහෝ දේ නොකියයි. උදාහරණයක් ලෙස, ඔබට ඉතා ඉක්මනින් තොරතුරු පෙළ ගොනු වලට ලිවිය හැකිය - මේ වගේ
- ගෝලීය වල විශාලතම ශක්තිය වන්නේ නව නෝඩ් ඇතුළත් කළ හැකි වේගයයි.
- ගෝලීය දත්ත සෑම විටම සුචිගත කර ඇත. එක් මට්ටමකින් සහ ගස තුළට ගැඹුරින් ඒවා හරහා ගමන් කිරීම සෑම විටම වේගවත් වේ.
ගෝලීය මට්ටමට දෙවන සහ තෙවන මට්ටම්වල තවත් ශාඛා කිහිපයක් එකතු කරමු.
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
ගෝලීය මත පදනම්ව බහු මට්ටමේ ගස් ගොඩනගා ගත හැකි බව පැහැදිලිය. එපමනක් නොව, ඇතුල් කිරීමේදී ස්වයංක්රීය සුචිගත කිරීම හේතුවෙන් ඕනෑම නෝඩයකට ප්රවේශය ක්ෂණිකව සිදු වේ. ගසේ ඕනෑම මට්ටමක, සියලුම ශාඛා යතුරෙන් වර්ග කර ඇත.
ඔබට පෙනෙන පරිදි, තොරතුරු යතුර සහ අගය යන දෙකෙහිම ගබඩා කළ හැකිය. සම්පූර්ණ යතුරු දිග (සියලු දර්ශකවල දිග එකතුව) ළඟා විය හැක
තවත් සිත්ගන්නා කරුණක්. ඉහළ මට්ටම්වල නෝඩ් වල අගයන් නියම නොකර ඔබට ගසක් තැනිය හැකිය.
Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3
හිස් කව යනු අගයක් පවරා නොමැති නෝඩ් වේ.
ගෝලීය වඩා හොඳින් අවබෝධ කර ගැනීම සඳහා, අපි ඒවා වෙනත් ගස් සමඟ සංසන්දනය කරමු: ගෙවතු ගස් සහ ගොනු පද්ධති නාම ගස්.
අපට වඩාත් හුරුපුරුදු ධූරාවලි ව්යුහයන් සමඟ ගෝලීය ගස් සංසන්දනය කරමු: උද්යානවල සහ කෙත්වල වැඩෙන සාමාන්ය ගස් සමඟ මෙන්ම ගොනු පද්ධති සමඟ.
ගෙවතු ගස්වල අප දකින පරිදි, කොළ සහ පලතුරු දක්නට ලැබෙන්නේ අතු කෙළවරේ පමණි.
ගොනු පද්ධති - තොරතුරු ගබඩා කර ඇත්තේ සම්පූර්ණ සුදුසුකම් ලත් ගොනු නාම වන ශාඛාවල කෙළවරේ පමණි.
මෙන්න ගෝලීය දත්ත ව්යුහය.
වෙනස්කම්:
- අභ්යන්තර නෝඩ්: ගෝලීය තොරතුරු ශාඛා කෙළවරේ පමණක් නොව සෑම නෝඩයකම ගබඩා කළ හැක.
- බාහිර නෝඩ්: ගෝලීය ශාඛාවල කෙළවරේ අගයන් අර්ථ දක්වා තිබිය යුතු අතර FS සහ ගෙවතු ගස් එසේ නොවේ.
අභ්යන්තර නෝඩ් අනුව, ගෝලීය ව්යුහය යනු ගොනු පද්ධති සහ ගෙවතු ගස්වල නාම ගස්වල ව්යුහයේ සුපිරි කට්ටලයක් බව අපට පැවසිය හැකිය. එම. වඩාත් නම්යශීලී.
පොදුවේ ගත් කල, ගෝලීය වේ එක් එක් නෝඩය තුළ දත්ත ගබඩා කිරීමේ හැකියාව ඇති ඇණවුම් කළ ගස.
ග්ලෝබල් වල ක්රියාකාරිත්වය වඩා හොඳින් අවබෝධ කර ගැනීම සඳහා, ගොනු පද්ධති නිර්මාපකයින් තොරතුරු ගබඩා කිරීම සඳහා ග්ලෝබල් වලට සමාන ප්රවේශයක් භාවිතා කළහොත් කුමක් සිදුවේදැයි සිතා බලන්න.
- ඩිරෙක්ටරියක තනි ගොනුවක් මකා දැමීම ස්වයංක්රීයව ඩිරෙක්ටරිය මකා දැමෙනු ඇත, එසේම දැන් මකා දැමූ එක් නාමාවලියක් පමණක් අඩංගු සියලුම උඩින් ඇති නාමාවලි ස්වයංක්රීයව මකා දැමෙනු ඇත.
- නාමාවලි අවශ්ය නොවනු ඇත. උප ගොනු සහිත ගොනු සහ උප ගොනු නොමැති ගොනු සරලව පවතිනු ඇත. සාමාන්ය ගසක් හා සසඳන විට, සෑම අත්තක්ම පලතුරක් බවට පත්වේ.
- README.txt ගොනු වැනි දේවල් අවශ්ය නොවනු ඇත. නාමාවලියෙහි අන්තර්ගතය ගැන පැවසීමට අවශ්ය සියල්ල නාමාවලිය ගොනුවටම ලිවිය හැකිය. මාර්ග අවකාශය තුළ, ගොනු නාමය නාමාවලියේ නමෙන් වෙන් කොට හඳුනාගත නොහැකි බැවින්, ගොනු සමඟ පමණක් ලබා ගැනීමට හැකි විය.
- කැදැලි උප බහලුම් සහ ගොනු සහිත නාමාවලි මකා දැමීමේ වේගය නාටකාකාර ලෙස වැඩි වනු ඇත. කුඩා ගොනු මිලියන ගණනක් මකා දැමීම කොතරම් දිගු හා දුෂ්කරද යන්න ගැන Habré හි බොහෝ විට ලිපි තිබේ (
1 ,2 ) කෙසේ වෙතත්, ඔබ ගෝලීය වශයෙන් ව්යාජ ගොනු පද්ධතියක් සාදන්නේ නම්, එයට තත්පර කිහිපයක් හෝ එහි කොටස් කිහිපයක් ගතවනු ඇත. මම ගෙදර පරිගණකයක උප ගස් මකා දැමීම පරීක්ෂා කළ විට, එය තත්පර 1 කින් HDD (SSD නොවේ) මත තට්ටු දෙකේ ගසකින් මිලියන 96-341 නෝඩ් ඉවත් කළේය. එපමණක්ද නොව, අපි කතා කරන්නේ ගසෙහි කොටසක් මකා දැමීම ගැන මිස ගෝලීය සමග සම්පූර්ණ ගොනුව පමණක් නොවේ.
උප ගස් ඉවත් කිරීම ගෝලීයකරණයේ තවත් ප්රබල කරුණකි. මේ සඳහා ඔබට පුනරාවර්තනයක් අවශ්ය නොවේ. මෙය ඇදහිය නොහැකි තරම් ඉක්මනින් සිදු වේ.
අපගේ ගසෙහි මෙය විධානය සමඟ කළ හැකිය Kill.
Kill ^a("+7926X")
ගෝලීය වශයෙන් අපට ලබා ගත හැකි ක්රියා මොනවාද යන්න පිළිබඳ වඩා හොඳ අවබෝධයක් සඳහා, මම කෙටි වගුවක් ලබා දෙන්නෙමි.
COS හි ගෝලීය සමග වැඩ කිරීම සඳහා මූලික විධාන සහ කාර්යයන්
ශාඛා නෝඩයකට (තවමත් අර්ථ දක්වා නොමැති නම්) සහ නෝඩ් අගයන් සැකසීම
උප ගසක් පිටපත් කිරීම
උප ගසක් ඉවත් කිරීම
නිශ්චිත නෝඩයක අගය මකා දැමීම. නෝඩයෙන් මතුවන උප වෘක්ෂය ස්පර්ශ නොවේ
ගසෙහි සම්පූර්ණ ගමන් කිරීම, ගස තුළට ගැඹුරට යාම
විශේෂිත නෝඩයක අතු හරහා ගමන් කිරීම
නෝඩයක් අර්ථ දක්වා තිබේදැයි පරීක්ෂා කිරීම
නෝඩ් අගයක් පරමාණුකව වැඩි කිරීම. ACID සඳහා කියවීම සහ ලිවීම වැළැක්වීමට. මෑතකදී එය වෙනස් කිරීමට නිර්දේශ කර ඇත
ඔබගේ අවධානයට ස්තූතියි, ඔබගේ ප්රශ්නවලට පිළිතුරු දීමට අපි සූදානම්.
වගකීමෙන් යුතුව ඔබ එවන: මෙම ලිපිය සහ එයට මගේ අදහස් මගේ මතය වන අතර අන්තර් පද්ධති සංස්ථාවේ නිල තනතුරට කිසිදු සම්බන්ධයක් නැත.
අඛණ්ඩව
මූලාශ්රය: www.habr.com