ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² PostgreSQL: ΠΊΠ°ΠΊΠΈΠ΅ Π±ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Π΄Π΅Π΄Π»ΠΎΠΊ?
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΡΠΎΠΊΠΈ. Π’Π°Π±Π»ΠΈΡΠ½ΡΠ΅ (ACCESS SHARE Ρ SELECT, ROW EXCLUSIVE Ρ INSERT/UPDATE/DELETE, ACCESS EXCLUSIVE Ρ ALTER TABLE, VACUUM FULL, TRUNCATE) ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ; ΡΡΡΠΎΡΠ½ΡΠ΅ Π±Π΅ΡΡΡΡΡ UPDATE ΠΈ SELECT FOR UPDATE. ΠΠ»Π°Π²Π½Π°Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π² ΠΏΡΠΎΠ΄Π΅ β ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ: ALTER TABLE ΠΆΠ΄ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ SELECT, Π° Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π²ΡΡΠ°ΡΡ Π·Π° ALTER, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ΅ΡΡΠ½Π°Ρ ΠΈ Π½Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π²ΠΏΠ΅ΡΡΠ΄. Π’Π°ΠΊ ΠΎΠ΄Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ, Ρ
ΠΎΡΡ ΡΠ°ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ; Π»Π΅ΡΠΈΡΡΡ lock_timeout ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌΠΈ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌΠΈ. ΠΠ΅Π΄Π»ΠΎΠΊ β ΡΡΠΎ ΡΠΈΠΊΠ» ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ: PostgreSQL Π½Π°Ρ
ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· deadlock_timeout (1 Ρ) ΠΈ ΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Ρ 40P01. ΠΡΠΎΡΠΈΠ»Π°ΠΊΡΠΈΠΊΠ° ΠΏΡΠΎΡΡΠ°Ρ ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ: ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΡΠΎΠΊΠ°ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ.