Verilənlər bazasında REPEATABLE_READ izolyasiya səviyyəsindən istifadə təcrübəniz nədir?
sobes.tech Süni İntellekt
AI-dan cavab
REPEATABLE_READ izolyasiya səviyyəsi, eyni əməliyyat daxilində, eyni məlumatların təkrar oxunmasında həmişə eyni nəticələrin qaytarılmasını təmin edir, hətta digər əməliyyatlar bu məlumatları paralel olaraq dəyişsə belə. Bu, bir əməliyyat daxilində iki oxu arasında məlumatların dəyişməsi zamanı qeyri-təkrarlanan oxuma (non-repeatable read) problemini qarşısını alır.
Praktikada, REPEATABLE_READ istifadə etmişəm, çətin oxuma və yeniləmə əməliyyatlarında məlumatların ardıcıllığını təmin etmək üçün, məsələn, sifarişlərin və ya maliyyə əməliyyatlarının işlənməsində. Java-da JDBC və ya ORM (məsələn, Hibernate) istifadə edərək, bu izolyasiya səviyyəsini əlaqə metodları və ya sessiya konfiqurasiyası vasitəsilə təyin etmək mümkündür.
JDBC-də izolyasiya səviyyəsinin qurulması nümunəsi:
connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
connection.setAutoCommit(false);
// Əməliyyatların icrası
connection.commit();
Əhəmiyyətlidir ki, REPEATABLE_READ paralelliyi azalda və kilidlənmə ehtimalını artıra bilər, ona görə də, təkrarlanan oxumalarda məlumatların bütövlüyü vacibdirsə, istifadə olunmalıdır.