Middle+
PostgreSQL және MySQL-де транзакциялар қалай жұмыс істейді?
sobes.tech AI
AI-дан жауап
PostgreSQL және MySQL-дағы транзакциялар атомдылықты, келісімділікті, оқшаулануды және тұрақтылықты (ACID) қамтамасыз етеді.
-
PostgreSQL-да транзакциялар
BEGIN-мен басталып,COMMITнемесеROLLBACK-пен аяқталады. MVCC (көп нұсқалы бәсекелестік) қолдау көрсетіледі, бұл оқуларды блоктамай транзакцияларды оқшауландыруға мүмкіндік береді. -
MySQL-да мінез-құлық сақтау қозғалтқышына байланысты. Мысалы, InnoDB MVCC және оқшаулану деңгейлерін қолдайды, ал MyISAM — жоқ.
Мысал Go тілінде дерекқорды пайдалана отырып:
import (
"database/sql"
_ "github.com/lib/pq" // PostgreSQL үшін
)
func example(db *sql.DB) error {
tx, err := db.Begin()
if err != nil {
return err
}
defer tx.Rollback()
_, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
if err != nil {
return err
}
return tx.Commit()
}
Осылайша, транзакциялар бірнеше операцияны бір бүтін ретінде топтастыруға мүмкіндік береді, ол толық орындалса немесе қате болған жағдайда қайтарылса, орындалады.