{"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\/cs\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","title":{"rendered":"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Ahoj v\u0161em. Tady je Vladislav Rodin. V sou\u010dasn\u00e9 dob\u011b jsem vedouc\u00edm kurzu \u201eArchitekt vysoce zat\u00ed\u017een\u00fdch syst\u00e9m\u016f\u201c na OTUS a tak\u00e9 vyu\u010duji na kurzech zam\u011b\u0159en\u00fdch na architekturu softwaru.<br \/>\n<\/i><br \/>\n<b><i>Krom\u011b vyu\u010dov\u00e1n\u00ed, jak mo\u017en\u00e1 v\u00edte, se v\u011bnuji psan\u00ed autorsk\u00e9ho materi\u00e1lu pro blog OTUS na Habr a dne\u0161n\u00ed \u010dl\u00e1nek bych cht\u011bl v\u011bnovat spu\u0161t\u011bn\u00ed kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">\u201ePostgreSQL\u201c<\/a><\/noindex>, pro kter\u00fd je pr\u00e1v\u011b nyn\u00ed otev\u0159en z\u00e1pis.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" 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\/\">minule<\/a><\/noindex> Mluvili jsme o tom, \u017ee transakce v datab\u00e1z\u00edch slou\u017e\u00ed k \u0159e\u0161en\u00ed dvou \u00fakol\u016f: zaji\u0161t\u011bn\u00ed odolnosti v\u016f\u010di chyb\u00e1m a p\u0159\u00edstupu k dat\u016fm v konkuren\u010dn\u00edm prost\u0159ed\u00ed. Aby tyto \u00fakoly byly pln\u011b spln\u011bny, mus\u00ed m\u00edt transakce vlastnosti ACID. Dnes se podrobn\u011b pod\u00edv\u00e1me na p\u00edsmeno <b>I (izolace)<\/b> v t\u00e9to zkratce.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Izolace<\/h2>\n<p>\nIzolace \u0159e\u0161\u00ed p\u0159\u00edstup k dat\u016fm v konkuren\u010dn\u00edm prost\u0159ed\u00ed t\u00edm, \u017ee vlastn\u011b poskytuje ochranu proti race condition\u016fm. Ide\u00e1ln\u011b izolace znamen\u00e1 serializaci, co\u017e je vlastnost, kter\u00e1 zaji\u0161\u0165uje, \u017ee v\u00fdsledek prov\u00e1d\u011bn\u00ed transakc\u00ed paraleln\u011b je stejn\u00fd, jako kdyby byly prov\u00e1d\u011bny sekven\u010dn\u011b. Hlavn\u00ed probl\u00e9m t\u00e9to vlastnosti spo\u010d\u00edv\u00e1 v tom, \u017ee je velmi obt\u00ed\u017en\u00e9 ji technicky zajistit, co\u017e m\u00e1 jako d\u016fsledek siln\u00fd dopad na v\u00fdkon syst\u00e9mu. Pr\u00e1v\u011b proto je izolace \u010dasto oslaben\u00e1, p\u0159i\u010dem\u017e se akceptuj\u00ed rizika vzniku n\u011bkter\u00fdch anom\u00e1li\u00ed, o kter\u00fdch bude \u0159e\u010d n\u00ed\u017ee. Mo\u017enost vzniku r\u016fzn\u00fdch anom\u00e1li\u00ed charakterizuje \u00farove\u0148 izolace transakc\u00ed.<\/p>\n<p>Nejzn\u00e1m\u011bj\u0161\u00edmi anom\u00e1liemi jsou: dirty read, non-repeatable read, phantom read, ale ve skute\u010dnosti jich je je\u0161t\u011b 5: dirty write, cursor lost update, lost update, read skew, write skew.<\/p>\n<h2>Dirty write<\/h2>\n<p>\nPodstatou t\u00e9to anom\u00e1lie je, \u017ee transakce mohou p\u0159episovat nezam\u010den\u00e1 data.<\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/416d14593449b8b10d46c77804af772a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTato anom\u00e1lie je nebezpe\u010dn\u00e1 nejen t\u00edm, \u017ee data se mohou po potvrzen\u00ed obou transakc\u00ed dostat do konfliktu (jak je zn\u00e1zorn\u011bno na obr\u00e1zku), ale tak\u00e9 t\u00edm, \u017ee naru\u0161uje atomaritu: proto\u017ee umo\u017e\u0148ujeme p\u0159episovat nezam\u010den\u00e1 data, nen\u00ed jasn\u00e9, jak vr\u00e1tit jednu transakci, ani\u017e by se to dotklo druh\u00e9. <\/p>\n<p>Tato anom\u00e1lie se l\u00e9\u010d\u00ed dost jednodu\u0161e: p\u0159ed po\u010d\u00e1tkem z\u00e1pisu nastav\u00edme z\u00e1mek na z\u00e1pis, \u010d\u00edm\u017e zak\u00e1\u017eeme ostatn\u00edm transakc\u00edm m\u011bnit z\u00e1pis, dokud nen\u00ed z\u00e1mek odstran\u011bn. <\/p>\n<h2>Dirty read<\/h2>\n<p>\nDirty read znamen\u00e1 p\u0159e\u010dten\u00ed nezam\u010den\u00fdch dat. <\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/133a48a7a1b91a085e3ade73de517e3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProbl\u00e9my nast\u00e1vaj\u00ed, kdy\u017e je t\u0159eba na z\u00e1klad\u011b v\u00fdb\u011bru prov\u00e9st n\u011bjak\u00e9 akce nebo p\u0159ijmout rozhodnut\u00ed.<\/p>\n<p>Pro opravu anom\u00e1lie lze zav\u00e9st z\u00e1mek na \u010dten\u00ed, ale to v\u00fdrazn\u011b zas\u00e1hne do v\u00fdkonu. Mnohem jednodu\u0161\u0161\u00ed je \u0159\u00edct, \u017ee pro rollback transakce mus\u00ed b\u00fdt p\u016fvodn\u00ed stav dat (p\u0159ed zah\u00e1jen\u00edm z\u00e1pisu) nevyhnuteln\u011b zachov\u00e1n v syst\u00e9mu. Pro\u010d ho ne\u010d\u00edst odsud? Je to dost levn\u00e9, proto v\u011bt\u0161ina datab\u00e1z\u00ed m\u00e1 dirty read ve v\u00fdchoz\u00edm nastaven\u00ed vypnut\u00fd. <\/p>\n<h2>Ztracen\u00e9 aktualizace<\/h2>\n<p>\nZtracen\u00e9 aktualizace znamenaj\u00ed ztracen\u00e9 aktualizace, a p\u0159eklad celkem p\u0159esn\u011b vystihuje podstatu probl\u00e9mu:<\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/bed92d27aa9ad2330de4a5fa37991bf6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVe skute\u010dnosti byla v\u00fdsledn\u00e1 transakce T2 zru\u0161ena. Tato situace se \u0159e\u0161\u00ed explicitn\u00edmi nebo implicitn\u00edmi blokacemi z\u00e1znamu. To znamen\u00e1, \u017ee bu\u010f provedeme aktualizaci z\u00e1znamu, a t\u00edm dojde k implicitn\u00ed blokaci, nebo vykon\u00e1me <b>select for update<\/b>, co\u017e vyvol\u00e1v\u00e1 blokaci pro \u010dten\u00ed a z\u00e1pis. V\u0161imn\u011bte si, \u017ee tato operace je dost nebezpe\u010dn\u00e1: sv\u00fdm \"nevinn\u00fdm\" \u010dten\u00edm blokujeme dal\u0161\u00ed \u010dten\u00ed. N\u011bkter\u00e9 datab\u00e1ze nab\u00edzej\u00ed bezpe\u010dn\u011bj\u0161\u00ed <b>select for share<\/b>, kter\u00e9 umo\u017e\u0148uje \u010d\u00edst data, ale neumo\u017e\u0148uje je m\u011bnit. <\/p>\n<h2>Ztracen\u00e1 aktualizace kurzoru<\/h2>\n<p>\nPro podrobn\u011bj\u0161\u00ed kontrolu mohou datab\u00e1ze nab\u00edzet dal\u0161\u00ed n\u00e1stroje, nap\u0159\u00edklad kurzor. Kurzorem se rozum\u00ed struktura obsahuj\u00edc\u00ed sadu \u0159\u00e1dk\u016f a umo\u017e\u0148uj\u00edc\u00ed jejich iteraci. <b>declare cursor_name for select_statement<\/b>. Obsah kurzoru je pops\u00e1n selectem. <\/p>\n<p>Jak\u00fd je \u00fa\u010del kurzoru? Fakt je, \u017ee n\u011bkter\u00e9 datab\u00e1ze nab\u00edzej\u00ed z\u00e1mek na v\u0161echny z\u00e1znamy, kter\u00e9 jsou vybr\u00e1ny selectem (read stability), nebo pouze na ten z\u00e1znam, na kter\u00e9m se pr\u00e1v\u011b kurzor nach\u00e1z\u00ed (cursor stability). P\u0159i cursor stability se prov\u00e1d\u00ed kr\u00e1tk\u00fd z\u00e1mek, co\u017e umo\u017e\u0148uje sn\u00ed\u017eit po\u010det z\u00e1mk\u016f, pokud iterujeme p\u0159es velk\u00fd vzorek dat. Proto se anom\u00e1lie lost update vy\u010dle\u0148uje pro kurzor zvl\u00e1\u0161\u0165.<\/p>\n<h2>Nerepeatable read<\/h2>\n<p>\nNerepeatable read spo\u010d\u00edv\u00e1 v tom, \u017ee b\u011bhem prov\u00e1d\u011bn\u00ed na\u0161\u00ed transakce 2 po sob\u011b jdouc\u00ed \u010dten\u00ed stejn\u00e9ho z\u00e1znamu povedou k z\u00edsk\u00e1n\u00ed r\u016fzn\u00fdch v\u00fdsledk\u016f, proto\u017ee jin\u00e1 transakce zas\u00e1hla mezi t\u011bmito dv\u011bma \u010dten\u00edmi, zm\u011bnila na\u0161e \u00fadaje a byla zkomitov\u00e1na. <\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/7954d2fbcbda3904240eae39ba5e9bbc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPro\u010d je to v\u016fbec probl\u00e9m? P\u0159edstavte si, \u017ee c\u00edlem transakce T2 na obr\u00e1zku je vybrat v\u0161echny produkty, jejich\u017e cena je ni\u017e\u0161\u00ed ne\u017e 150 m\u011bn. N\u011bkdo jin\u00fd aktualizoval cenu na 200 m\u011bn. T\u00edmto se aplikovan\u00fd filtr neprojevil.<\/p>\n<p>Tyto anom\u00e1lie p\u0159est\u00e1vaj\u00ed vznikat p\u0159i pou\u017eit\u00ed dvouf\u00e1zov\u00e9ho blokov\u00e1n\u00ed nebo mechanismu MVCC, o \u010dem\u017e bych cht\u011bl mluvit zvl\u00e1\u0161\u0165. <\/p>\n<h2>Fantomov\u00e9 \u010dten\u00ed<\/h2>\n<p>\nFantomov\u00fdm se naz\u00fdv\u00e1 \u010dten\u00ed dat, kter\u00e1 byla p\u0159id\u00e1na jinou transakc\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/4f5e62205bac4b9422f6631f171ca11d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJako p\u0159\u00edklad si m\u016f\u017eeme p\u0159edstavit nespr\u00e1vn\u00fd v\u00fdb\u011br nejlevn\u011bj\u0161\u00edho produktu p\u0159i vzniku t\u00e9to anom\u00e1lie. <\/p>\n<p>Zbavit se fantomov\u00fdch \u010dten\u00ed je ji\u017e dosti slo\u017eit\u00e9. B\u011b\u017en\u00e9 blokov\u00e1n\u00ed nesta\u010d\u00ed, proto\u017ee nem\u016f\u017eeme zablokovat to, co je\u0161t\u011b neexistuje. Syst\u00e9my 2PL pou\u017e\u00edvaj\u00ed predikativn\u00ed blokov\u00e1n\u00ed, zat\u00edmco syst\u00e9my MVCC pl\u00e1nova\u010d transakc\u00ed ru\u0161\u00ed transakce, kter\u00e9 mohou b\u00fdt naru\u0161eny vlo\u017een\u00edm. Jak prvn\u00ed, tak druh\u00fd mechanismus je dost objemn\u00fd.<\/p>\n<h2>Read skew<\/h2>\n<p>\nRead skew vznik\u00e1, kdy\u017e pracujeme s n\u011bkolika tabulkami, jejich\u017e obsah by se m\u011bl m\u011bnit soub\u011b\u017en\u011b. <\/p>\n<p>P\u0159edpokl\u00e1dejme, \u017ee m\u00e1me tabulky, kter\u00e9 reprezentuj\u00ed p\u0159\u00edsp\u011bvky a jejich meta informace:<\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/e15440e44c41c0ac15d2c3349d1fae4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedna transakce \u010dte z tabulek, druh\u00e1 je m\u011bn\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/b89da5ae2d926ed0061cb90917d8a1ef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV d\u016fsledku proveden\u00ed transakce T1 m\u00e1 p\u0159\u00edsp\u011bvek title = Good a updated_by = T2, co\u017e je ur\u010dit\u00e9 nesoulad. <\/p>\n<p>V podstat\u011b se jedn\u00e1 o non-repeatable read, ale v r\u00e1mci n\u011bkolika tabulek.<\/p>\n<p>Pro opravu m\u016f\u017ee T1 aplikovat blokov\u00e1n\u00ed na v\u0161echny \u0159\u00e1dky, kter\u00e9 bude \u010d\u00edst, co\u017e transakci T2 zabr\u00e1n\u00ed v m\u011bn\u011bn\u00ed informac\u00ed. V p\u0159\u00edpad\u011b MVCC bude transakce T2 zru\u0161ena. Ochrana p\u0159ed touto anom\u00e1li\u00ed m\u016f\u017ee b\u00fdt d\u016fle\u017eit\u00e1, pokud pou\u017e\u00edv\u00e1me kurzory. <\/p>\n<h2>Write skew<\/h2>\n<p>\nTuto anom\u00e1lii tak\u00e9 jednodu\u0161e vysv\u011btl\u00edme na p\u0159\u00edkladu: p\u0159edpokl\u00e1dejme, \u017ee v na\u0161em syst\u00e9mu mus\u00ed b\u00fdt alespo\u0148 jeden l\u00e9ka\u0159 na pohotovosti, ale oba l\u00e9ka\u0159i se rozhodli svou pohotovost zru\u0161it:<\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/7c6e4410224c3fcc9c564369535644e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/8723c2dfe3e4b97ded601da2f89a77b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnom\u00e1lie vedla k tomu, \u017ee \u017e\u00e1dn\u00fd l\u00e9ka\u0159 nep\u0159ijde na pohotovost. Pro\u010d se to stalo? Proto\u017ee transakce kontrolovala podm\u00ednku, kterou m\u016f\u017ee naru\u0161it jin\u00e1 transakce, a kv\u016fli izolaci jsme tuto zm\u011bnu nevid\u011bli.<\/p>\n<p>To je ten sam\u00fd non-repeatable read. Jako mo\u017enost mohou selects zav\u00e1d\u011bt z\u00e1mky na tyto z\u00e1znamy.<\/p>\n<p>Write skew a read skew jsou kombinacemi p\u0159edchoz\u00edch anom\u00e1li\u00ed. M\u016f\u017eeme se pod\u00edvat na write skew, co\u017e je v podstat\u011b phantom read. Zva\u017eme tabulku, ve kter\u00e9 jsou jm\u00e9na zam\u011bstnanc\u016f, jejich platy a projekty, na kter\u00fdch pracuj\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/2953d6148d07ded9e1a3d67428b14e67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch\" src=\"\/wp-content\/uploads\/2020\/05\/f77800e316708944aa32a9095ae6b132.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa z\u00e1v\u011br dost\u00e1v\u00e1me n\u00e1sleduj\u00edc\u00ed obraz: ka\u017ed\u00fd mana\u017eer si myslel, \u017ee jeho zm\u011bna nezp\u016fsob\u00ed p\u0159ekro\u010den\u00ed rozpo\u010dtu, proto provedli person\u00e1ln\u00ed zm\u011bny, kter\u00e9 dohromady vedly k p\u0159ekro\u010den\u00ed n\u00e1klad\u016f. <\/p>\n<p>D\u016fvod vzniku probl\u00e9mu je p\u0159esn\u011b takov\u00fd, jak\u00fd byl u fantomov\u00e9ho \u010dten\u00ed. <\/p>\n<h2>Z\u00e1v\u011bry<\/h2>\n<p>\nSn\u00ed\u017een\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1zi je kompromisem mezi bezpe\u010dnost\u00ed a v\u00fdkonem, k volb\u011b t\u00e9to \u00farovn\u011b je t\u0159eba p\u0159istupovat s ohledem na potenci\u00e1ln\u00ed rizika pro podnik\u00e1n\u00ed v p\u0159\u00edpad\u011b vzniku r\u016fzn\u00fdch anom\u00e1li\u00ed.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">Zjistit v\u00edce o kurzu.<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.3 - 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\/cs\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47K \u010demu m\u016f\u017ee v\u00e9st oslaben\u00ed \u00farovn\u011b izolace transakc\u00ed v datab\u00e1z\u00edch | ProHoster","description":"Ahoj v\u0161ichni. Tady Vladislav Rodin.","canonical_url":"https:\/\/prohoster.info\/cs\/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":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/83337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=83337"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/83337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/83338"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=83337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=83337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=83337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}