Senior
რომელი ტიპის ტრანზაქციებს იცნობ? რა მიზნით გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
Go-ში ტრანზაქციები ჩვეულებრივ დაკავშირებულია მონაცემთა ბაზებთან და გამოიყენება ACID (ატომარობა, შესაბამისობა, იზოლაცია, მდგრადობა) პრინციპების უზრუნველსაყოფად.
ტრანზაქციების ტიპები:
- ავტომატური ტრანზაქციები — როდესაც თითოეული ოპერაცია შესრულდება როგორც ცალკე ტრანზაქცია.
- გამოყოფილი ტრანზაქციები — როდესაც პროგრამისტი ახორციელებს ტრანზაქციის გამჭვირვალე დაწყებას, დადასტურებას ან გაუქმებას
Begin(),Commit(),Rollback()მეთოდების გამოყენებით. - გრძელვადიანი ტრანზაქციები — გამოიყენება განაწილებულ სისტემებში, სადაც ტრანზაქცია შეიძლება გაგრძელდეს ხანგრძლივად და საჭირო იყოს კოორდინაცია.
რატომ არის ტრანზაქციები საჭირო:
- უზრუნველყოფს, რომ ოპერაციების ჯგუფი ან სრულად შესრულდება, ან საერთოდ არა.
- თავიდან ავიცილოთ შეჯახების პირობები და უზრუნველვყოთ მონაცემების მთლიანობა.
- საშუალებას გვაძლევს შეცდომების შემთხვევაში ცვლილებების უკან დაბრუნება.
Go-ში მონაცემთა ბაზასთან ტრანზაქციის გამოყენების მაგალითი:
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)
}