Դուք գիտեք PostgreSQL- ի գործարքների մեկուսացման մակարդակները՞
sobes.tech AI
Պատասխան AI-ից
PostgreSQL-ում կան չորս տրանսակցիայի մեկուսացման մակարդակներ, որոնք սահմանված են SQL ստանդարտով:
-
Read Uncommitted — ամենացածր մեկուսացման մակարդակ։ Թույլ է տալիս կարդալ տվյալներ, որոնք դեռ չեն հաստատվել (dirty reads): PostgreSQL-ում այն գործելապես նման է Read Committed-ին, քանի որ dirty reads-ը չի աջակցվում:
-
Read Committed — նախնական մակարդակ։ Տրանսակցիան տեսնում է միայն այն տվյալները, որոնք հաստատվել են յուրաքանչյուր առանձին հարցում։ Միջեւ հարցումների միջեւ կարող են փոխվել տվյալները այլ տրանսակցիաների կողմից։
-
Repeatable Read — տրանսակցիան տեսնում է տվյալների պատկերը սկզբում։ Բոլոր հարցումները տեսնում են նույն տվյալները, նույնիսկ եթե այլ տրանսակցիաներ դրանք փոխում եւ հաստատում են։ Պրիվենտ է ոչ կրկնվող ընթերցումները (non-repeatable read), բայց թույլ է տալիս ֆանտոմային ընթերցումներ։
-
Serializable — ամենակոշտ մեկուսացման մակարդակ։ Գերաշխավորում է ամբողջական սերիալիզացիան, կանխում ֆանտոմային ընթերցումները եւ ապահովում է վարքագիծ, որը հավասար է սեկվենցիոն կատարմանը։
Օրինակ՝ մեկուսացման մակարդակի կարգավորումը՝
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- SQL գործողություններ
COMMIT;