Шумо сатҳиҳои ҷудоии транзаксияҳои 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;