Sobes.tech
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.