Middle
Tranzaksiya izolatsiyasining qanday turlari mavjud?
sobes.tech AI
AIdan javob
Transaksiya izolyatsiyasi, bir tranzaksiya boshqa parallel ravishda bajarilayotgan tranzaksiyalarning oraliq o'zgarishlarini qanchalik ko'rish mumkinligini belgilaydi.
SQL standarti to'rtta izolyatsiya darajasini belgilaydi:
- Read Uncommitted (Noto'g'ri o'qish): Eng past daraja. Tranzaksiya boshqa tranzaksiyalarning tasdiqlanmagan o'zgarishlarini o'qishi mumkin (xarob o'qish).
- Read Committed (Tasdiqlangan o'qish): Tranzaksiya faqat boshqa tranzaksiyalar tomonidan tasdiqlangan ma'lumotlarni o'qishi mumkin. "Xarob o'qish"dan qochadi.
- Repeatable Read (Takrorlanadigan o'qish): Tranzaksiya, tranzaksiya davomida o'qilgan ma'lumotlar, takroriy o'qishda o'zgarmasligini kafolatlaydi. "Xarob o'qish" va "takrorlanmaydigan o'qish"dan qochadi. "Fantomlar" yuzaga kelishi mumkin.
- Serializable (Serializatsiya qilingan): Eng yuqori izolyatsiya darajasi. Parallel tranzaksiyalar, ular ketma-ket bajarilgan kabi bajarilishini kafolatlaydi. Barcha noxush hodisalar: "xarob o'qish", "takrorlanmaydigan o'qish" va "fantomlar"dan qochadi.
Parallel tranzaksiya bajarishda noxush hodisalar:
- Dirty Read (Xarob o'qish): A tranzaksiyasi, B tranzaksiyasi tomonidan o'zgartirilgan, lekin hali tasdiqlanmagan ma'lumotlarni o'qiydi. Agar B tranzaksiyasi o'zgarishlarni bekor qilsa, A noto'g'ri ma'lumotlar bilan ishlaydi.
- Non-repeatable Read (Takrorlanmaydigan o'qish): A tranzaksiyasi, ayni ma'lumotlarni ikki marta o'qiydi, lekin B tranzaksiyasi, o'rtada, bu ma'lumotlarda o'zgarishlarni tasdiqlaydi. Natijada, A turli qiymatlarni oladi.
- Phantom Read (Fantom o'qish): A tranzaksiyasi, satrlar to'plamini qaytaradigan so'rov bajaradi. B tranzaksiyasi, A so'rovining shartlariga mos keladigan satrlarni qo'shadi yoki o'chiradi. Qayta bajarilganda, A, turli satrlar to'plamini oladi.
Izolyatsiya darajalariga qarab, noxush hodisalar jadvali:
| Izolyatsiya darajasi | Xarob o'qish | Takrorlanmaydigan o'qish | Fantomlar |
|---|---|---|---|
| Read Uncommitted | Ha | Ha | Ha |
| Read Committed | Yo'q | Ha | Ha |
| Repeatable Read | Yo'q | Yo'q | Ha |
| Serializable | Yo'q | Yo'q | Yo'q |
Izolyatsiya darajasini tanlash, ilovaning ishlash tezligi va to'g'riligi uchun ta'sir qiladi. Qanchalik yuqori bo'lsa, xarajatlar shunchalik ortadi.