Senior
Ce tipuri de tranzacții cunoști? Pentru ce sunt folosite?
sobes.tech AI
Răspuns de la AI
În Go, tranzacțiile sunt de obicei asociate cu bazele de date și sunt utilizate pentru a asigura atomicitatea, coerența, izolarea și durabilitatea (ACID).
Tipuri de tranzacții:
- Tranzacții automate — când fiecare operație este executată ca o tranzacție separată.
- Tranzacții explicite — când dezvoltatorul începe, confirmă sau anulează explicit o tranzacție folosind metodele
Begin(),Commit(),Rollback(). - Tranzacții de lungă durată — utilizate în sistemele distribuite, unde tranzacția poate dura mult timp și necesită coordonare.
De ce sunt necesare tranzacțiile:
- Garantarea că un grup de operații fie se va realiza complet, fie nu se va realiza deloc.
- Previn condițiile de cursă și asigură integritatea datelor.
- Permite revertirea modificărilor în caz de erori.
Exemplu de utilizare a unei tranzacții în Go cu o bază de date:
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
tx.Rollback()
log.Fatal(err)
}
err = tx.Commit()
if err != nil {
log.Fatal(err)
}