Sobes.tech
Junior — Middle

Бир транзакциянын ичинде канча операцияны аткарууга болот?

sobes.tech AI

AIден жооп

Go (Golang) тилинде бир транзакцияда жасала турган операциялардын максималдуу саны тил же стандарттык китепкана тарабынан чектелбейт. Чектөөлөр колдонулуп жаткан маалыматтар базасы жана драйверге көзкаранды. Мисалы, SQL транзакцияларында, ресурстар бүтпөй турганча же маалыматтар базасынын чеги ашпаганча көптөгөн операцияларды аткарса болот.

Өтө узун транзакциялар тоскоолдуктарга жана иштөө ылдамдыгынын төмөндөшүнө алып келиши мүмкүн экенин эске алуу маанилүү. Ошондуктан, транзакцияларды кыска жана логикалык жактан байланышкан кылуу сунушталат.

Go менен маалыматтар базасында транзакцияны колдонуу мисалы:

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)
}

Бул жерде, логикалык жактан байланышкан жана маалыматтар базасынын чектөөлөрүнөн ашпаган каалаган сандык операцияларды кошсо болот.