Middle
რა არის არსებული იზოლაციის დონეების კლასიფიკაცია?
sobes.tech AI
პასუხი AI-სგან
დაცვითი დონეები მონაცემთა ბაზებში განსაზღვრავს, რამდენად არის ტრანზაქციები ერთმანეთისგან და სხვა ტრანზაქციების მიერ განხორციელებული ცვლილებებისგან იზოლირებული. ისინი თავიდან აცილებენ სხვადასხვა პარალელური წვდომის პრობლემებს:
SQL-ის სტანდარტული დონეების კლასიფიკაცია:
- READ UNCOMMITTED
- ნებადართულია არასამყარო ცვლილებების წაკითხვა (დამაბნეველი კითხვა / dirty read):
- პრობლემები: დამაბნეველი კითხვა, განმეორებადი კითხვა, ფანტომური კითხვა:
- READ COMMITTED
- ნებადართულია მხოლოდ დადასტურებული ცვლილებების წაკითხვა:
- აკრძალულია დამაბნეველი კითხვა:
- პრობლემები: განმეორებადი კითხვა, ფანტომური კითხვა:
- ყველაზე ხშირად გამოყენებადი დონე:
- REPEATABLE READ
- გარანტია, რომ იგივე სარჩევის ობიექტების განმეორებითი კითხვა ერთ ტრანზაქციაში იგივე მონაცემებს დააბრუნებს, თუ სხვა ტრანზაქციები არ შეცვლიან მათ:
- აკრძალულია დამაბნეველი კითხვა და განმეორებადი კითხვა:
- პრობლემა: ფანტომური კითხვა (ახალი სარჩევის ობიექტების გამოჩენა, რომლებიც შეესაბამება შერჩევის პირობებს):
- SERIALIZABLE
- უმაღლესი იზოლაციის დონე:
- უზრუნველყოფს სრულყოფილ გამიჯვნას პარალელური წვდომის პრობლემებისგან:
- ტრანზაქციები შესრულდება ისე, როგორც ისინი შესრულებულიყო თანმიმდევრობით:
- აკრძალულია დამაბნეველი კითხვა, განმეორებადი კითხვა და ფანტომური კითხვა:
- შეიძლება მნიშვნელოვანი გავლენა მოახდინოს პროდუქტიულობაზე:
პარალელური წვდომის პრობლემები:
| პრობლემა | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE |
|---|---|---|---|---|
| დამაბნეველი კითხვა | დიახ | არა | არა | არა |
| განმეორებადი კითხვა | დიახ | დიახ | არა | არა |
| ფანტომური კითხვა | დიახ | დიახ | დიახ | არა |
მონაცემთა ბაზის დონე არჩევა დამოკიდებულია პროგრამის მოთხოვნებზე და მონაცემთა მთლიანობისა და პროდუქტიულობის შორის ბალანსზე.