mysql 7

7.5.8. InnoDB tranzakciós modell

Kinevezés InnoDB tranzakciós modell az, hogy egyesíti a legjobb tulajdonságait többváltozós adatbázis hagyományos kétfázisú zárolás. Mert InnoDB táblák sor szintű zárolást, és az alapértelmezett lekérdezések futnak szerves olvasni zárak nélkül, hasonlóan ahhoz, ahogy azt végrehajtani az Oracle. InnoDB tárolási zár tábla szervezi olyan hatékonyan, hogy nincs szükség, hogy meghosszabbítja a zár: tipikusan néhány felhasználó képes blokkolni bármilyen vonal vagy sor sort az adatbázisban, anélkül, hogy az összes rendelkezésre álló memóriát InnoDB.

InnoDB táblákban, minden felhasználói műveleteket végzi a tranzakciót. Ha MySQL használják auto-commit módban külön tranzakció jön létre minden SQL utasítást. MySQL mindig nyit egy új kapcsolatot autocommit mód.

Ha az automatikus zárás üzemmód ki van kapcsolva útján SET AUTOCOMMIT = 0. azt feltételezzük, hogy a felhasználó folyamatosan nyitott tranzakciót. Ha ő végzi az SQL COMMIT utasítás vagy ROLLBACK. hogy a jelenlegi tranzakció befejeződött, amint egy új tranzakció elindul. Mindkét említett üzemeltető eltávolítja az összes zár InnoDB, amely szerepel a jelenlegi tranzakció. A COMMIT azt jelenti, hogy a változások a jelenlegi tranzakció, elfogadott és láthatóvá válnak a többi felhasználó számára. ROLLBACK utasítást felülbírálja az összes változtatást a jelenlegi tranzakció.

Ha a vegyületet állítva AUTOCOMMIT = 1. A felhasználó azonban használhatják az ügylet kezdő őket BEGIN és befejezve a COMMIT vagy ROLLBACK.

A felhasználó megváltoztathatja az elválasztási szintet Egyetlen alkalom, vagy egy új kapcsolat az alábbiak szerint:

Ügyeljünk arra, hogy a szigetelési szintet neve van írva, kötőjel nélkül az SQL-kifejezés. Ha meg a kulcsszót GLOBAL a fenti kifejezés, ez fogja meghatározni a hőszigetelés új kapcsolatokat, de nem lesz hatással a régi kapcsolatokat. Bármely felhasználó megváltoztathatja az izolációs szintet a munkamenet, még az ügylet. A verziók esetén 3.23.50 SET ÜGYLETI nem volt hatása a InnoDB táblákat. A verziók esetén a 4.0.5, akkor csak megismételhető READ és Serializable.

Tudod kap információt a hőszigetelés, vagy globális az aktuális kapcsolat:

A sor szintű zár InnoDB használ úgynevezett next-kulcs zár. Ez azt jelenti, hogy amellett index rekordok InnoDB is blokkolja az „intervallum”, mielőtt az index rekord blokkolni beiktatást a többi felhasználó előtt közvetlenül index rekord. Next-billentyűzár azt jelenti, hogy a zár kerül az index rekord és a rés előtt. Lock intervallum csak lezárni intervallum előtt néhány index bejegyzéseket.

Részletes leírása minden elkülönítési szint InnoDB:

OLVASSA nem kötelezett még az úgynevezett „piszkos olvasni”: nem zár mintavétel (SELECT) végre oly módon, hogy nem látja a lehetőségét a korai változatai a rekordot; így azok „koordinálatlan” olvasható ebben izolációs szint; más esetekben ez a szint úgy működik, mint a READ elkövették.

READ ELKÖTELEZETT Valami hasonló Oracle izolációs szint. Minden kifejezéseket SELECT. Frissítését és SELECT. LOCK IN SHARE MODE blokkolja az egyetlen index nyilvántartások és ne takarja el a nyílás előttük. Ezért ezek lehetővé teszik, hogy szabadon új rekordok után blokkolja. UPDATE és DELETE. hogy egy egyedi index és egyedi keresési kifejezések blokkolni csak az index rekord talált, nem a rés előtt van tiltva. Azonban, UPDATE és DELETE tartomány típusú InnoDB kell állítani a következő zár vagy kulcs zár és a blokk intervallum hozzá a többi felhasználó intervallumon belül fedett tartományban. Ez azért szükséges, mert „Phantom sorok” blokkolni kell a sikeres replikáció és hasznosítás MySQL. Következetes olvasási működik, mint az Oracle: minden következetes olvasni, még ugyanabban a tranzakció beállítja és beolvassa a saját képére.

Ismételhető olvassa el ezt a izolációs szint az alapértelmezett InnoDB. SELECT. FOR UPDATE. SELECT. Zár SHARE MODE. UPDATE. És Törlés. használó egyedi indexek és egyedi keresési feltételt blokk csak az index rekord talált, és ne takarja el a rés előtt. Más esetekben a művelet használ következő kulcs lakat az index tartományban beolvasott vagy a következő billentyű zár intervallum, és blokkolja az új kiegészítések a többi felhasználó.

A következetes olvasás van egy fontos különbség a korábbi elkülönítési szint: Ezen a szinten minden következetes olvasás ugyanazon ügylet olvassa el a képet hozott az első olvasatra. Ez a megállapodás azt jelenti, hogy ha az alábbi néhány egyszerű választás (SELECT) ugyanazon ügylet, ezek a minták lesz holisztikus kapcsolatban egymással.

Serializable Ez a szint hasonló az előző, de egyszerű SELECT alakítjuk SELECT. Zár SHARE MODE.