Senior
Hangi işlem türlerini biliyorsun? Bunlar ne işe yarar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da işlemler genellikle veritabanlarıyla ilişkilidir ve atomiklik, tutarlılık, izolasyon ve dayanıklılık (ACID) sağlamak için kullanılır.
İşlem türleri:
- Otomatik işlemler — her işlem ayrı bir işlem olarak gerçekleştirilir.
- Açık işlemler — geliştirici,
Begin(),Commit(),Rollback()metodlarıyla işlemi açıkça başlatır, onaylar veya geri alır. - Uzun süreli işlemler — dağıtık sistemlerde kullanılır, burada işlem uzun sürebilir ve koordinasyon gerektirir.
İşlemlerin amacı:
- Bir grup işlemin ya tamamen gerçekleşmesini ya da hiç gerçekleşmemesini sağlar.
- Yarış koşullarını önler ve veri bütünlüğünü sağlar.
- Hatalar durumunda değişiklikleri geri almayı mümkün kılar.
Go'da veritabanı ile işlem kullanımı örneği:
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)
}