{"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\/fr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","title":{"rendered":"Quelles peuvent \u00eatre les cons\u00e9quences d'un affaiblissement du niveau d'isolation des transactions dans les bases de donn\u00e9es","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Bonjour \u00e0 tous. Ici Vladislav Rodin. Actuellement, je suis le responsable du cours \u00ab Architecte des charges \u00e9lev\u00e9es \u00bb chez OTUS, et j'enseigne \u00e9galement dans des cours consacr\u00e9s \u00e0 l'architecture des logiciels.<br \/>\n<\/i><br \/>\n<b><i>En plus de l'enseignement, comme vous l'avez peut-\u00eatre remarqu\u00e9, j'\u00e9cris du contenu original pour le blog OTUS sur Habr, et je souhaite consacrer cet article au lancement d'un cours <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">\u00abPostgreSQL\u00bb<\/a><\/noindex>, pour lequel les inscriptions sont actuellement ouvertes.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/acfb562f4e72d657c09f5ce00acdf80b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Introduction<\/h2>\n<p>\nDans <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/494652\/\">la fois pr\u00e9c\u00e9dente<\/a><\/noindex> Nous avons discut\u00e9 du fait que les transactions dans les bases de donn\u00e9es servent \u00e0 r\u00e9soudre deux probl\u00e9matiques : assurer la r\u00e9silience et l'acc\u00e8s aux donn\u00e9es dans un environnement concurrent. Pour ex\u00e9cuter pleinement ces t\u00e2ches, une transaction doit poss\u00e9der les propri\u00e9t\u00e9s ACID. Aujourd'hui, nous allons parler en d\u00e9tail de la lettre <b>I (isolation)<\/b> dans cet acronyme.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Isolation<\/h2>\n<p>\nL'isolement r\u00e9sout le probl\u00e8me de l'acc\u00e8s aux donn\u00e9es dans un environnement concurrent, offrant ainsi une protection contre les conditions de concurrence. Id\u00e9alement, l'isolement signifie s\u00e9rialisation, c'est-\u00e0-dire une propri\u00e9t\u00e9 garantissant que le r\u00e9sultat de l'ex\u00e9cution des transactions en parall\u00e8le est identique \u00e0 celui qui serait obtenu s'ils \u00e9taient ex\u00e9cut\u00e9s s\u00e9quentiellement. Le principal probl\u00e8me de cette propri\u00e9t\u00e9 est qu'elle est techniquement tr\u00e8s difficile \u00e0 garantir et, par cons\u00e9quent, impacte fortement les performances du syst\u00e8me. C'est pourquoi l'isolement est souvent assoupli, en prenant le risque de certaines anomalies, dont nous parlerons ci-dessous. La possibilit\u00e9 d'apparition de telles anomalies caract\u00e9rise pr\u00e9cis\u00e9ment le niveau d'isolement des transactions.<\/p>\n<p>Les anomalies les plus connues sont : dirty read, non-repeatable read, phantom read, mais en r\u00e9alit\u00e9, il y en a encore 5 : dirty write, cursor lost update, lost update, read skew, write skew.<\/p>\n<h2>Dirty write<\/h2>\n<p>\nLe probl\u00e8me de l'anomalie est que des transactions peuvent \u00e9craser des donn\u00e9es non valid\u00e9es.<\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/416d14593449b8b10d46c77804af772a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCette anomalie est dangereuse non seulement parce que les donn\u00e9es peuvent entrer en conflit apr\u00e8s la validation des deux transactions (comme le montre l'image), mais aussi parce qu'elle compromet l'atomicit\u00e9 : autoriser d'\u00e9crire sur des donn\u00e9es non valid\u00e9es rend incertain comment annuler une transaction sans toucher \u00e0 l'autre. <\/p>\n<p>L'anomalie se r\u00e9sout assez simplement : on met un verrou sur l'\u00e9criture avant de commencer l'\u00e9criture, interdisant aux autres transactions de modifier l'enregistrement tant que le verrou n'est pas lev\u00e9. <\/p>\n<h2>Dirty read<\/h2>\n<p>\nDirty read signifie la lecture de donn\u00e9es non valid\u00e9es. <\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/133a48a7a1b91a085e3ade73de517e3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLes probl\u00e8mes surviennent lorsque des actions doivent \u00eatre entreprises ou des d\u00e9cisions prises sur la base d'un \u00e9chantillon.<\/p>\n<p>Pour corriger l'anomalie, on peut imposer un verrouillage en lecture, mais cela va s\u00e9rieusement affecter les performances. Il est beaucoup plus simple de dire que pour le rollback d'une transaction, l'\u00e9tat initial des donn\u00e9es (avant le d\u00e9but de l'\u00e9criture) doit absolument \u00eatre conserv\u00e9 dans le syst\u00e8me. Pourquoi ne pas lire \u00e0 partir de l\u00e0 ? Cela revient \u00e0 peu de frais, c'est pourquoi la plupart des bases de donn\u00e9es d\u00e9sactivent la lecture sale par d\u00e9faut. <\/p>\n<h2>Mise \u00e0 jour perdue<\/h2>\n<p>\nLa mise \u00e0 jour perdue d\u00e9signe des mises \u00e0 jour perdues, et la traduction refl\u00e8te assez pr\u00e9cis\u00e9ment l'essence du probl\u00e8me :<\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/bed92d27aa9ad2330de4a5fa37991bf6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn fait, le r\u00e9sultat de la transaction T2 a \u00e9t\u00e9 annul\u00e9. Cette situation est corrig\u00e9e par des verrouillages explicites ou implicites d'enregistrement. C'est-\u00e0-dire que nous effectuons soit simplement la mise \u00e0 jour de l'enregistrement, et alors un verrouillage implicite se produit, soit nous ex\u00e9cutons <b>select for update<\/b>, provoquant l'apparition d'un verrouillage en lecture et en \u00e9criture. Notez que cette op\u00e9ration est assez risqu\u00e9e : en faisant une lecture \u00ab innocente \u00bb, nous bloquons d'autres lectures. Certaines bases offrent un <b>select for share<\/b>, permettant de lire les donn\u00e9es, mais n'autorisant pas les modifications. <\/p>\n<h2>Mise \u00e0 jour perdue de curseur<\/h2>\n<p>\nPour un contr\u00f4le plus fin, les bases peuvent proposer d'autres outils, comme les curseurs. Un curseur est une structure contenant un ensemble de lignes et permettant d'it\u00e9rer sur celles-ci. <b>declare cursor_name for select_statement<\/b>. Le contenu du curseur est d\u00e9crit par le select. <\/p>\n<p>Pourquoi le curseur est-il n\u00e9cessaire ? En effet, certaines bases de donn\u00e9es proposent un verrouillage sur toutes les lignes s\u00e9lectionn\u00e9es par le select (stabilit\u00e9 en lecture), ou seulement sur la ligne sur laquelle se trouve actuellement le curseur (stabilit\u00e9 du curseur). Lors de la stabilit\u00e9 du curseur, un verrouillage court est appliqu\u00e9, ce qui permet de r\u00e9duire le nombre de verrous lorsqu'on it\u00e8re sur un grand ensemble de donn\u00e9es. C'est pourquoi l'anomalie de mise \u00e0 jour perdue est mise en \u00e9vidence pour le curseur s\u00e9par\u00e9ment.<\/p>\n<h2>Lecture non r\u00e9p\u00e9table<\/h2>\n<p>\nLa lecture non r\u00e9p\u00e9table consiste \u00e0 ce qu'au cours de l'ex\u00e9cution de notre transaction, 2 lectures cons\u00e9cutives du m\u00eame enregistrement entra\u00eenent des r\u00e9sultats diff\u00e9rents, car une autre transaction est intervenue entre ces deux lectures, a modifi\u00e9 nos donn\u00e9es et a \u00e9t\u00e9 valid\u00e9e. <\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/7954d2fbcbda3904240eae39ba5e9bbc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPourquoi cela pose-t-il un probl\u00e8me ? Imaginez que le but de la transaction T2 sur l'image est de s\u00e9lectionner tous les produits dont le prix est inf\u00e9rieur \u00e0 150 unit\u00e9s. Quelqu'un a augment\u00e9 le prix \u00e0 200 unit\u00e9s. Par cons\u00e9quent, le filtre \u00e9tabli ne fonctionne pas.<\/p>\n<p>Ces anomalies cessent de se produire avec l'ajout de verrouillages \u00e0 deux phases ou en utilisant le m\u00e9canisme MVCC, ce dont nous aimerions parler s\u00e9par\u00e9ment. <\/p>\n<h2>Lecture fant\u00f4me<\/h2>\n<p>\nUne lecture est dite fant\u00f4me lorsqu'elle consiste \u00e0 lire des donn\u00e9es qui ont \u00e9t\u00e9 ajout\u00e9es par une autre transaction. <\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/4f5e62205bac4b9422f6631f171ca11d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPar exemple, on peut observer une s\u00e9lection incorrecte du produit le moins cher lors de cette anomalie. <\/p>\n<p>\u00c9liminer les lectures fant\u00f4mes est d\u00e9j\u00e0 assez compliqu\u00e9. Un verrouillage ordinaire n'est pas suffisant, car nous ne pouvons pas verrouiller ce qui n'existe pas encore. Les syst\u00e8mes 2PL utilisent des verrous pr\u00e9dicatifs, tandis que les syst\u00e8mes MVCC annulant les transactions qui pourraient \u00eatre perturb\u00e9es par une insertion. Les deux m\u00e9canismes sont assez lourds.<\/p>\n<h2>Biais de lecture<\/h2>\n<p>\nLe biais de lecture se produit lorsque nous travaillons avec plusieurs tables dont le contenu doit changer de mani\u00e8re coh\u00e9rente. <\/p>\n<p>Supposons que nous ayons des tables repr\u00e9sentant des publications et leurs m\u00e9tainformations :<\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/e15440e44c41c0ac15d2c3349d1fae4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUne transaction lit des tables, une autre les modifie :<\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/b89da5ae2d926ed0061cb90917d8a1ef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c0 la suite de la transaction T1, la publication a title = Good, et updated_by = T2, ce qui constitue une certaine incoh\u00e9rence. <\/p>\n<p>En r\u00e9alit\u00e9, il s'agit d'une lecture non r\u00e9p\u00e9table, mais dans le cadre de plusieurs tables.<\/p>\n<p>Pour corriger cela, T1 peut verrouiller toutes les lignes qu'elle va lire, ce qui emp\u00eachera la transaction T2 de modifier les informations. Dans le cas de MVCC, la transaction T2 sera annul\u00e9e. La protection contre cette anomalie peut \u00eatre importante si nous utilisons des curseurs. <\/p>\n<h2>Biais d'\u00e9criture<\/h2>\n<p>\nCet anomalie est \u00e9galement plus facile \u00e0 expliquer par exemple : supposons qu'au moins un m\u00e9decin doit \u00eatre de garde dans notre syst\u00e8me, mais que les deux m\u00e9decins ont d\u00e9cid\u00e9 d'annuler leur garde :<\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/7c6e4410224c3fcc9c564369535644e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/8723c2dfe3e4b97ded601da2f89a77b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL'anomalie a conduit \u00e0 ce qu'aucun m\u00e9decin ne puisse \u00eatre de garde. Pourquoi cela s'est-il produit ? Parce que la transaction a v\u00e9rifi\u00e9 une condition qui peut \u00eatre viol\u00e9e par une autre transaction, et en raison de l'isolement, nous n'avons pas vu ce changement.<\/p>\n<p>C'est le m\u00eame principe que la lecture non r\u00e9p\u00e9table. En option, les selects peuvent imposer des verrous sur ces enregistrements.<\/p>\n<p>Le glissement d'\u00e9criture et le glissement de lecture sont des combinaisons des anomalies pr\u00e9c\u00e9dentes. Nous pouvons examiner le glissement d'\u00e9criture, qui est essentiellement une lecture fant\u00f4me. Consid\u00e9rons une table qui contient les noms des employ\u00e9s, leur salaire et le projet sur lequel ils travaillent :<\/p>\n<p><img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/2953d6148d07ded9e1a3d67428b14e67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Quelles peuvent \u00eatre les cons\u00e9quences d&#039;un affaiblissement du niveau d&#039;isolation des transactions dans les bases de donn\u00e9es\" src=\"\/wp-content\/uploads\/2020\/05\/f77800e316708944aa32a9095ae6b132.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn fin de compte, nous obtenons le tableau suivant : chaque manager pensait que son changement ne d\u00e9passerait pas le budget, c'est pourquoi ils ont apport\u00e9 des modifications de personnel qui, au total, ont entra\u00een\u00e9 un d\u00e9passement des co\u00fbts. <\/p>\n<p>La raison de l'apparition du probl\u00e8me est exactement la m\u00eame que dans le cas du phantom read. <\/p>\n<h2>Conclusions<\/h2>\n<p>\nL'assouplissement du niveau d'isolation des transactions dans les bases de donn\u00e9es est un compromis entre s\u00e9curit\u00e9 et performances, et ce choix doit \u00eatre fait en fonction des risques potentiels pour l'entreprise en cas d'anomalies sp\u00e9cifiques.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">En savoir plus sur le cours.<br \/>\n<\/a><\/noindex><\/p>\n<p>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Quelles peuvent \u00eatre les cons\u00e9quences de l'assouplissement du niveau d'isolation des transactions dans les bases de donn\u00e9es | ProHoster","description":"Bonjour \u00e0 tous. Ici Vladislav Rodin.","canonical_url":"https:\/\/prohoster.info\/fr\/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":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/83337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=83337"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/83337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/83338"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=83337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=83337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=83337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}