Sobes.tech
Junior — Middle

Aký je maximálny počet operácií povolených v rámci jednej transakcie?

sobes.tech AI

Odpoveď od AI

V jazyku Go (Golang) nie je maximálny počet operácií v jednej transakcii obmedzený samotným jazykom alebo štandardnou knižnicou. Obmedzenia závisia od používané databázy a ovládača. Napríklad v SQL transakciách môžete vykonávať veľké množstvo operácií, pokiaľ sa nevyčerpajú zdroje alebo neprekročí limit databázy.

Je dôležité si uvedomiť, že príliš dlhé transakcie môžu viesť k zámkom a zníženiu výkonu. Preto sa odporúča udržiavať transakcie krátke a logicky prepojené.

Príklad použitia transakcie v Go s databázou:

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)
}

Tu je možné pridať akýkoľvek počet operácií, pokiaľ sú logicky prepojené a neprekračujú obmedzenia databázy.