Isolation levels με απλά παραδείγματα
Η αγορά σου διαβάζει ότι ένα προϊόν κοστίζει 100€. Πριν ολοκληρωθεί, ένας διαχειριστής προσπαθεί να αλλάξει την τιμή σε 120€. Χρειαζόμαστε για το τι επιτρέπεται να διαβάσει η αγορά και πότε κάποια εργασία πρέπει να περιμένει. Αυτούς τους κανόνες επιλέγουμε μέσω του επιπέδου απομόνωσης — isolation level . Τα παρακάτω αφορούν SQL Server. Οι βασικές επιλογές ReadCommitted Διαβάζουμε αλλαγές άλλων…
Οι επιλογές του επιπέδου απομόνωσης επιβάλλουν στην αγορά ποιες πληροφορίες να διαβάζουν και πότε να αναμένουν υπολογισμούς. Τα κυρίαρχα είναι ReadCommitted, ReadUncommitted, RepeatableRead, Serializable και Snapshot.
ReadCommitted έχει απομακρυνθεί ως προεπιλογή στο SQL Server. Οι χρήστες μπορούν να διαβάσουν τις αλλαγές μόνο μετά το commit τους. Για παράδειγμα, αν ένας χρήστης διαβάσει 100€ και ένας διαχειριστής αλλάζει την τιμή σε 120€ και κάνει commit, τότε ο χρήστης θα βλέπει 120€ στην επόμενη διάβαση.
ReadUncommitted επιτρέπει την κατάβαση τεχνικών διαβάσεων πριν από την υποβολή των αλλαγών. Η μεταβολή της τιμής μπορεί να γίνει, αλλαγής που δεν θα ξαναδιαβάσουν.
RepeatableRead προστατεύει τις γραμμές που έχουν διαβαστεί. Αν ένας χρήστης διαβάσει την τιμή 100€, ένας διαχειριστής μπορεί να αλλάξει την τιμή, αλλά ο χρήστης θα υπομένει μέχρι τελείωση της διαδικασίας.
Serializable προστατεύει το σύνολο της αναζήτησης. Αν μετράται 29 συμμετέχοντες σε μάθημα με όριο 30, η προσθήκη ενός προσωπού δεν θα μεταβάλλει το σύνολο σε 31.
Snapshot διαβάζει μια αρχική εικόνα των δεδομένων και τις ίδιες αλλαγές. Εάν ένας χρήστης διαβάσει 100€ και ένας διαχειριστής αλλάζει την τιμή σε 120€, τότε ο χρήστης θα είναι άδειος να βλέπει 100€.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.