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.