{"id":83337,"date":"2020-05-30T07:42:48","date_gmt":"2020-05-30T05:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh"},"modified":"2020-05-30T07:42:48","modified_gmt":"2020-05-30T05:42:48","slug":"k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","title":{"rendered":"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Ahojte v\u0161etci. Tu je Vladislav Rodin. V s\u00fa\u010dasnosti som ved\u00facim kurzu \"Architekt vysok\u00fdch za\u0165a\u017een\u00ed\" na OTUS a tie\u017e u\u010d\u00edm na kurzoch zameran\u00fdch na architekt\u00faru softv\u00e9ru.<br \/>\n<\/i><br \/>\n<b><i>Okrem u\u010denia, ako ste mohli v\u0161imn\u00fa\u0165, sa zaober\u00e1m p\u00edsan\u00edm autorsk\u00fdch materi\u00e1lov pre blog OTUS na habri a dne\u0161n\u00fd \u010dl\u00e1nok chcem venova\u0165 spusteniu kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">\u00abPostgreSQL\u00bb<\/a><\/noindex>, na ktor\u00fd je moment\u00e1lne otvoren\u00fd z\u00e1pis.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/acfb562f4e72d657c09f5ce00acdf80b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>\u00davod<\/h2>\n<p>\nV <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/494652\/\">minul\u00fdkr\u00e1t<\/a><\/noindex> sme hovorili o tom, \u017ee transakcie v datab\u00e1zach sl\u00fa\u017eia na rie\u0161enie dvoch \u00faloh: zabezpe\u010denie odolnosti vo\u010di poruch\u00e1m a pr\u00edstup k d\u00e1tam v konkuren\u010dnom prostred\u00ed. Pre riadne vykon\u00e1vanie t\u00fdchto \u00faloh mus\u00ed transakcia disponova\u0165 vlastnos\u0165ami ACID. Dnes podrobne preberieme p\u00edsmeno <b>I (izol\u00e1cia)<\/b> v tejto skratke.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Izol\u00e1cia<\/h2>\n<p>\nIzol\u00e1cia rie\u0161i probl\u00e9m pr\u00edstupu k d\u00e1tam v konkuren\u010dnom prostred\u00ed a v podstate poskytuje ochranu pred pretekan\u00edm podmienok. Ide\u00e1lne znamen\u00e1 izol\u00e1cia serializ\u00e1ciu, teda vlastnos\u0165, ktor\u00e1 zabezpe\u010duje, \u017ee v\u00fdsledok vykon\u00e1vania transakci\u00ed paralelne je rovnak\u00fd ako keby sa vykon\u00e1vali s\u00e9riovo. Hlavn\u00fd probl\u00e9m tejto vlastnosti spo\u010d\u00edva v tom, \u017ee je ve\u013emi \u0165a\u017ek\u00e9 ju technicky zabezpe\u010di\u0165 a ako d\u00f4sledok to v\u00fdrazne ovplyv\u0148uje v\u00fdkon syst\u00e9mu. Preto sa izol\u00e1cia \u010dasto oslabuje, pri\u010dom sa akceptuj\u00fa rizik\u00e1 vzniku niektor\u00fdch anom\u00e1li\u00ed, o ktor\u00fdch sa bude hovori\u0165 ni\u017e\u0161ie. Mo\u017enos\u0165 vzniku r\u00f4znych anom\u00e1li\u00ed presne charakterizuje \u00farove\u0148 izol\u00e1cie transakci\u00ed.<\/p>\n<p>Najzn\u00e1mej\u0161\u00edmi anom\u00e1liami s\u00fa: dirty read, non-repeatable read, phantom read, ale v skuto\u010dnosti ich je e\u0161te 5: dirty write, cursor lost update, lost update, read skew, write skew.<\/p>\n<h2>Dirty write<\/h2>\n<p>\nPodstata anom\u00e1lie spo\u010d\u00edva v tom, \u017ee transakcie m\u00f4\u017eu prepisova\u0165 nezakompilovan\u00e9 d\u00e1ta.<\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/416d14593449b8b10d46c77804af772a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00e1to anom\u00e1lia je nebezpe\u010dn\u00e1 nielen t\u00fdm, \u017ee d\u00e1ta m\u00f4\u017eu by\u0165 v konflikte po potvrden\u00ed oboch transakci\u00ed (ako na obr\u00e1zku), ale aj t\u00fdm, \u017ee naru\u0161uje atomickos\u0165: preto\u017ee povol\u00edme prep\u00edsanie nezakompilovan\u00fdch d\u00e1t, nie je jasn\u00e9, ako vr\u00e1ti\u0165 jednu transakciu, ani\u017e by sme sa dotkli druhej. <\/p>\n<p>Anom\u00e1liu je mo\u017en\u00e9 celkom jednoducho vyrie\u0161i\u0165: pred za\u010diatkom z\u00e1pisu umiestnite z\u00e1mok na z\u00e1pis, \u010d\u00edm sa in\u00fdm transakci\u00e1m zak\u00e1\u017ee meni\u0165 z\u00e1znam, k\u00fdm nie je z\u00e1mok zru\u0161en\u00fd. <\/p>\n<h2>Dirty read<\/h2>\n<p>\nDirty read znamen\u00e1 \u010d\u00edtanie nezakomitovan\u00fdch d\u00e1t. <\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/133a48a7a1b91a085e3ade73de517e3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProbl\u00e9my nast\u00e1vaj\u00fa, ke\u010f je potrebn\u00e9 na z\u00e1klade vzorky vykona\u0165 nejak\u00e9 akcie alebo prija\u0165 rozhodnutia.<\/p>\n<p>Na opravu anom\u00e1lie je mo\u017en\u00e9 nastavi\u0165 z\u00e1mok na \u010d\u00edtanie, ale to v\u00fdrazne zasiahne do v\u00fdkonu. Ove\u013ea jednoduch\u0161ie je poveda\u0165, \u017ee pre rollback transakcie mus\u00ed by\u0165 p\u00f4vodn\u00fd stav d\u00e1t (pred za\u010diatkom z\u00e1pisu) nevyhnutne ulo\u017een\u00fd v syst\u00e9me. Pre\u010do ne\u010d\u00edta\u0165 odtia\u013e? Je to dos\u0165 lacn\u00e9, tak\u017ee v\u00e4\u010d\u0161ina datab\u00e1z predvolene zakazuje dirty read. <\/p>\n<h2>Straten\u00e9 aktualiz\u00e1cie<\/h2>\n<p>\nStraten\u00e9 aktualiz\u00e1cie znamenaj\u00fa straten\u00e9 aktualiz\u00e1cie a preklad dostato\u010dne presne vystihuje podstatu probl\u00e9mu:<\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/bed92d27aa9ad2330de4a5fa37991bf6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV skuto\u010dnosti bola v\u00fdsledok transakcie T2 zru\u0161en\u00e1. Tak\u00e1to situ\u00e1cia sa opravuje explicitn\u00fdmi alebo implicitn\u00fdmi blokovaniami z\u00e1znamu. \u010ci\u017ee bu\u010f jednoducho realizujeme aktualiz\u00e1ciu z\u00e1znamu, \u010d\u00edm vznik\u00e1 implicitn\u00e9 blokovanie, alebo vykon\u00e1vame <b>select for update<\/b>, \u010d\u00edm sp\u00f4sobujeme vznik blokovania na \u010d\u00edtanie a z\u00e1pis. Upozor\u0148ujeme, \u017ee tak\u00e1to oper\u00e1cia je dos\u0165 nebezpe\u010dn\u00e1: svoj\u00edm \"nevinn\u00fdm\" \u010d\u00edtan\u00edm blokujeme in\u00e9 \u010d\u00edtania. Niektor\u00e9 datab\u00e1zy pon\u00fakaj\u00fa bezpe\u010dnej\u0161\u00ed <b>select for share<\/b>, ktor\u00fd umo\u017e\u0148uje \u010d\u00edta\u0165 d\u00e1ta, ale nezabezpe\u010duje ich zmenu. <\/p>\n<h2>Straten\u00e9 aktualiz\u00e1cie kurzora<\/h2>\n<p>\nPre jemnej\u0161iu kontrolu m\u00f4\u017eu datab\u00e1zy pon\u00faka\u0165 in\u00e9 n\u00e1stroje, napr\u00edklad kurzor. Kurzory s\u00fa \u0161trukt\u00fary, ktor\u00e9 obsahuj\u00fa s\u00fabor riadkov a umo\u017e\u0148uj\u00fa iter\u00e1ciu po nich. <b>declare cursor_name for select_statement<\/b>Obsah kurzora je op\u00edsan\u00fd selectom. <\/p>\n<p>Na \u010do je kurzor? Faktom je, \u017ee niektor\u00e9 datab\u00e1zy pon\u00fakaj\u00fa z\u00e1mok na v\u0161etky z\u00e1znamy vybran\u00e9 selectom (read stability), alebo iba na ten z\u00e1znam, na ktorom sa pr\u00e1ve kurzor nach\u00e1dza (cursor stability). Pri cursor stability sa vykon\u00e1va kr\u00e1tky z\u00e1mok, \u010do umo\u017e\u0148uje zn\u00ed\u017ei\u0165 po\u010det z\u00e1mkov v pr\u00edpade, \u017ee iterujeme cez ve\u013ek\u00fd v\u00fdber d\u00e1t. Preto sa anom\u00e1lia lost update vy\u010dle\u0148uje pre kurzor osobitne.<\/p>\n<h2>Nerepetovate\u013en\u00e9 \u010d\u00edtanie<\/h2>\n<p>\nNerepetovate\u013en\u00e9 \u010d\u00edtanie spo\u010d\u00edva v tom, \u017ee po\u010das vykon\u00e1vania na\u0161ej transakcie 2 po sebe id\u00face \u010d\u00edtania rovnak\u00e9ho z\u00e1znamu poved\u00fa k z\u00edskaniu r\u00f4znych v\u00fdsledkov, preto\u017ee in\u00e1 transakcia zasiahla medzi t\u00fdmito dvoma \u010d\u00edtaniami, zmenila na\u0161e d\u00e1ta a bola potvrden\u00e1. <\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/7954d2fbcbda3904240eae39ba5e9bbc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPre\u010do je to vlastne probl\u00e9m? Predstavte si, \u017ee cie\u013eom transakcie T2 na obr\u00e1zku je vybra\u0165 v\u0161etky produkty, ktor\u00fdch cena je ni\u017e\u0161ia ako 150 eur. Niekto in\u00fd aktualizoval cenu na 200 eur. Takto filter nefunguje.<\/p>\n<p>D\u00e1ta anom\u00e1lie prest\u00e1vaj\u00fa vznikaj\u00fa pri prid\u00e1van\u00ed dvojf\u00e1zov\u00fdch z\u00e1mkov alebo pri pou\u017eit\u00ed mechanizmu MVCC, o \u010dom by som chcel hovori\u0165 osobitne. <\/p>\n<h2>Fantomov\u00e9 \u010d\u00edtanie<\/h2>\n<p>\nFantomov\u00fdm sa naz\u00fdva \u010d\u00edtanie d\u00e1t, ktor\u00e9 boli pridan\u00e9 inou transakciou. <\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/4f5e62205bac4b9422f6631f171ca11d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko pr\u00edklad m\u00f4\u017eeme pozorova\u0165 nespr\u00e1vny v\u00fdber najlacnej\u0161ieho produktu pri vzniku tejto anom\u00e1lie. <\/p>\n<p>Zbavi\u0165 sa fant\u00f3mov\u00fdch \u010d\u00edtan\u00ed je u\u017e dos\u0165 n\u00e1ro\u010dn\u00e9. Obvykl\u00e9 z\u00e1mky nesta\u010dia, preto\u017ee nem\u00f4\u017eeme uzamkn\u00fa\u0165 to, \u010do e\u0161te neexistuje. Syst\u00e9my 2PL pou\u017e\u00edvaj\u00fa predik\u010dn\u00e9 z\u00e1mky, k\u00fdm MVCC syst\u00e9my pl\u00e1nova\u010d transakci\u00ed zru\u0161\u00ed transakcie, ktor\u00e9 m\u00f4\u017eu by\u0165 naru\u0161en\u00e9 vlo\u017een\u00edm. Ako prv\u00fd, tak druh\u00fd mechanizmus s\u00fa dos\u0165 n\u00e1ro\u010dn\u00e9.<\/p>\n<h2>Read skew<\/h2>\n<p>\nRead skew vznik\u00e1, ke\u010f pracujeme s nieko\u013ek\u00fdmi tabu\u013ekami, ktor\u00fdch obsah by sa mal meni\u0165 s\u00fahlasne. <\/p>\n<p>Predpokladajme, \u017ee existuj\u00fa tabu\u013eky, ktor\u00e9 reprezentuj\u00fa pr\u00edspevky a ich metainform\u00e1cie:<\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/e15440e44c41c0ac15d2c3349d1fae4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedna transakcia \u010d\u00edta z tabuliek, in\u00e1 ich men\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/b89da5ae2d926ed0061cb90917d8a1ef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV d\u00f4sledku vykonania transakcie T1 m\u00e1 pr\u00edspevok title = Good a updated_by = T2, \u010do predstavuje ur\u010dit\u00e9 nes\u00falad. <\/p>\n<p>V skuto\u010dnosti ide o non-repeatable read, ale v kontexte viacer\u00fdch tabuliek.<\/p>\n<p>Na opravu m\u00f4\u017ee T1 uzamkn\u00fa\u0165 v\u0161etky riadky, ktor\u00e9 bude \u010d\u00edta\u0165, \u010do zabr\u00e1ni transakcii T2 meni\u0165 inform\u00e1cie. V pr\u00edpade MVCC bude transakcia T2 zru\u0161en\u00e1. Ochrana proti tejto anom\u00e1lii m\u00f4\u017ee by\u0165 d\u00f4le\u017eit\u00e1, ak pou\u017e\u00edvame kurzory. <\/p>\n<h2>Write skew<\/h2>\n<p>\nT\u00fato anom\u00e1liou je tie\u017e jednoduch\u0161ie vysvetli\u0165 na pr\u00edklade: predpokladajme, \u017ee v na\u0161om syst\u00e9me mus\u00ed by\u0165 aspo\u0148 jeden doktor na slu\u017ebe, ale obaja lek\u00e1ri sa rozhodli svoju slu\u017ebu zru\u0161i\u0165:<\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/7c6e4410224c3fcc9c564369535644e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/8723c2dfe3e4b97ded601da2f89a77b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnom\u00e1lia viedla k tomu, \u017ee \u017eiadny z lek\u00e1rov sa neobjav\u00ed na slu\u017ebe. Pre\u010do sa to stalo? Preto\u017ee transakcia kontrolovala podmienku, ktor\u00fa m\u00f4\u017ee naru\u0161i\u0165 in\u00e1 transakcia, a kv\u00f4li izol\u00e1cii sme nevideli t\u00fato zmenu.<\/p>\n<p>To je ten ist\u00fd non-repeatable read. Ako alternat\u00edva, selecty m\u00f4\u017eu nastavi\u0165 z\u00e1mky na tieto z\u00e1znamy.<\/p>\n<p>Write skew a read skew s\u00fa kombin\u00e1ciami predch\u00e1dzaj\u00facich anom\u00e1li\u00ed. M\u00f4\u017eeme zv\u00e1\u017ei\u0165 write skew, ktor\u00fd je v podstate phantom read. Zv\u00e1\u017eme tabu\u013eku, v ktorej s\u00fa men\u00e1 zamestnancov, ich mzdy a projekt, na ktorom pracuj\u00fa:<\/p>\n<p><img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/2953d6148d07ded9e1a3d67428b14e67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u010co m\u00f4\u017ee vies\u0165 k oslabeniu \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach\" src=\"\/wp-content\/uploads\/2020\/05\/f77800e316708944aa32a9095ae6b132.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNakoniec dostaneme nasleduj\u00faci obraz: ka\u017ed\u00fd mana\u017e\u00e9r si myslel, \u017ee jeho zmena nevedie k prekro\u010deniu rozpo\u010dtu, preto uskuto\u010dnili person\u00e1lne zmeny, ktor\u00e9 celkovo viedli k pre\u010derpaniu. <\/p>\n<p>Pr\u00ed\u010dina vzniku probl\u00e9mu je presne tak\u00e1 ist\u00e1 ako pri phantom read. <\/p>\n<h2>Zhrnutie<\/h2>\n<p>\nZn\u00ed\u017eenie \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1ze je kompromis medzi bezpe\u010dnos\u0165ou a v\u00fdkonnos\u0165ou, k v\u00fdberu tejto \u00farovne by sa malo pristupova\u0165 z poh\u013eadu potenci\u00e1lnych riz\u00edk pre podnik pri vzniku r\u00f4znych anom\u00e1li\u00ed.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">Zisti\u0165 viac o kurze.<br \/>\n<\/a><\/noindex><\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/501294\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47\u010co m\u00f4\u017ee sp\u00f4sobi\u0165 zn\u00ed\u017eenie \u00farovne izol\u00e1cie transakci\u00ed v datab\u00e1zach | ProHoster","description":"Ahojte v\u0161etci. Tu je Vladislav Rodin.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-30T05:42:48+00:00","article:modified_time":"2020-05-30T05:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83337","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:20:28","updated":"2022-09-28 14:57:58","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/83337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=83337"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/83337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/83338"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=83337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=83337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=83337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}