Sobes.tech
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)
}