Junior — Middle
Milyen tranzakcióelzárási szinteket állított be manuálisan a gyakorlatban?
sobes.tech MI
Válasz az MI-től
A Go nyelvű adatbázisokkal való gyakorlatban gyakran szükség van a tranzakciók izolációs szintjeinek kézi beállítására a párhuzamosság ellenőrzése és a versenyképes hozzáférési problémák megelőzése érdekében. Az általánosan használt izolációs szintek:
- Read Uncommitted — a legalacsonyabb szint, lehetővé teszi a nem megerősített változtatások olvasását, ami "szennyezett" olvasásokhoz vezethet.
- Read Committed — megakadályozza a nem megerősített adatok olvasását, de lehetővé teszi a nem ismétlődő olvasásokat.
- Repeatable Read — garantálja, hogy a tranzakció során olvasott adatok nem változnak a végrehajtásukig.
- Serializable — a legszigorúbb szint, teljes izolációt biztosít a tranzakciók között, mintha egymás után futnának.
Go-ban, a database/sql csomag használatával, az izolációs szintet a BeginTx metódus sql.TxOptions{Isolation: sql.LevelSerializable} paraméterével lehet beállítani. Például:
ctx := context.Background()
tx, err := db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelRepeatableRead})
if err != nil {
// hiba kezelése
}
// tranzakcióval való munka