Junior — Middle
Mekkora a maximális műveletszám, amit egy tranzakció keretében végre lehet hajtani?
sobes.tech MI
Válasz az MI-től
A Go (Golang) nyelvben egy tranzakcióban végrehajtható műveletek maximális száma nem korlátozott a nyelv vagy az alapértelmezett könyvtár által. A korlátozások a használt adatbázistól és a drivertől függnek. Például SQL tranzakciókban sok művelet hajtható végre, amíg a források nem fogynak ki vagy nem lépi túl az adatbázis a limitet.
Fontos megjegyezni, hogy a túl hosszú tranzakciók zárolásokhoz és teljesítménycsökkenéshez vezethetnek. Ezért ajánlott rövid és logikailag összefüggő tranzakciókat tartani.
Példa egy tranzakció használatára Go nyelven egy adatbázissal:
trx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
trx.Rollback()
log.Fatal(err)
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - ? WHERE user_id = ?", 100, 1)
if err != nil {
trx.Rollback()
log.Fatal(err)
}
err = trx.Commit()
if err != nil {
log.Fatal(err)
}
Itt bármennyi művelet hozzáadható, amennyiben azok logikailag összefüggőek és nem lépik túl az adatbázis korlátait.