Senior
Postgres'te işlemlerle çalıştınız mı ve hangi izolasyon seviyeleriyle karşılaştınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
PostgreSQL'de, standart SQL komutları BEGIN, COMMIT ve ROLLBACK kullanarak ve Go'daki sürücüleri, örneğin database/sql, kullanarak işlemlerle çalıştım.
İzolasyon seviyelerine gelince, PostgreSQL dört ana seviyeyi destekler:
- Read Uncommitted (aslında Read Committed gibi çalışır, çünkü PostgreSQL kirli okuma yapmaya izin vermez)
- Read Committed (varsayılan seviye) — işlem, her okuma işleminin başında onaylanmış verileri görür
- Repeatable Read — tüm okuma işlemlerinde aynı veri anlık görüntüsünü görmesini sağlar, tekrar eden okumaları önler
- Serializable — en katı seviye, işlemlerin tam izolasyonunu sağlar, sanki sıralı olarak yürütülüyorlarmış gibi
Go'da, izolasyon seviyesini ayarlamak için TxOptions metodunu, bir işlem başlatırken kullanabilirsiniz:
opts := &sql.TxOptions{
Isolation: sql.LevelSerializable,
}
tx, err := db.BeginTx(ctx, opts)
Gereksinimlere bağlı olarak farklı seviyeleri kullandım.