[ΠΠΈΡΠΈΠ»Π» Π₯ΡΠ°ΠΏΠΊΠΎΠ²] ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ Π² PostgreSQL: ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΠ½Π΄Π΅ΠΊΡΡ, Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (2023)
[ΠΠΈΡΠΈΠ»Π» Π₯ΡΠ°ΠΏΠΊΠΎΠ²] [Thinknetica] ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ Π² PostgreSQL: ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΠ½Π΄Π΅ΠΊΡΡ, Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (2023)
ΠΠ½Π»Π°ΠΉΠ½ Π²ΠΎΡΠΊΡΠΎΠΏ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π½Π°ΡΡΠΈΡΡΡΡ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±Π°Π·Π°Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ Π±ΡΠ»Π° Π±ΡΡΡΡΠΎΠΉ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ.
ΠΡΠΎΡ Π²ΠΎΡΠΊΡΠΎΠΏ Π΄Π»Ρ Π²Π°Ρ, Π΅ΡΠ»ΠΈ:
ΠΡ ΠΈΡΠΏΡΡΡΠ²Π°Π΅ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠΌΡΠΎΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π²Π°ΡΠ΅ΠΉ ΠΠ;
ΠΠΎΠΈΡΠΊ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΡΠ΅ΠΌΡ;
Π’Π΅ΡΡΠ΅ΡΠ΅ΡΡ Π² Π²ΡΠ±ΠΎΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ;
ΠΠ΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ DeadLock ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π² ΠΊΡΡΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΠΎΡΠΊΡΠ΄Π° Π²Π·ΡΠ»ΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ;
ΠΠ°ΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Postgres ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ.
Π₯ΠΎΡΠΈΡΠ΅ Π·Π°ΠΊΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² Π·Π½Π°Π½ΠΈΡΡ ΠΏΠΎ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
ΠΠ΅Π½Ρ 1. ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
1. Π§ΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ.
2. ΠΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ:
ΠΏΠ΅ΡΠ²Π°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
Π²ΡΠΎΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
ΡΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° ΠΠΎΠΉΡΠ°-ΠΠΎΠ΄Π΄Π°
ΡΠ΅ΡΠ²Π΅ΡΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
ΠΏΡΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
Π΄ΠΎΠΌΠ΅Π½Π½ΠΎ-ΠΊΠ»ΡΡΠ΅Π²Π°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
ΡΠ΅ΡΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
3. ΠΠ΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π§ΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ?
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. Π ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ
ΠΠ΅Π½Ρ 2. ΠΠ½Π΄Π΅ΠΊΡΡ
1. Π§ΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ
2. ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
3. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ psql: B-Π΄Π΅ΡΠ΅Π²ΠΎ, Ρ Π΅Ρ, GiST, SP-GiST, GIN, BRIN
4. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ.
ΠΠ΅Π½Ρ 3. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
Π§ΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ?
ACID
Π’Π΅ΠΎΡΠ΅ΠΌΠ° Π‘ΠΠ
Π£ΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (share lock, exclusive lock, advisory lock)
mvcc ΠΈ ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΠΏΠΎΡΡΠ³ΡΠ΅ΡΠ΅
deadlock
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ. Π ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Π£Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΎΠ½ΠΈ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΡΡ
Π‘ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΏΠΎΠΈΡΠΊ Π² PSQL
Π£Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ; ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ²Π°ΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ, Π° Π² ΠΊΠ°ΠΊΠΈΡ , Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΎΠ½ΠΈ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
Π’Π°ΡΠΈΡ "ΠΡΠ°ΠΊΡΠΈΠΊ".
ΠΠ½Π»Π°ΠΉΠ½ Π²ΠΎΡΠΊΡΠΎΠΏ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π½Π°ΡΡΠΈΡΡΡΡ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±Π°Π·Π°Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ Π±ΡΠ»Π° Π±ΡΡΡΡΠΎΠΉ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ.
ΠΡΠΎΡ Π²ΠΎΡΠΊΡΠΎΠΏ Π΄Π»Ρ Π²Π°Ρ, Π΅ΡΠ»ΠΈ:
ΠΡ ΠΈΡΠΏΡΡΡΠ²Π°Π΅ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠΌΡΠΎΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π²Π°ΡΠ΅ΠΉ ΠΠ;
ΠΠΎΠΈΡΠΊ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΡΠ΅ΠΌΡ;
Π’Π΅ΡΡΠ΅ΡΠ΅ΡΡ Π² Π²ΡΠ±ΠΎΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ;
ΠΠ΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ DeadLock ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π² ΠΊΡΡΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΠΎΡΠΊΡΠ΄Π° Π²Π·ΡΠ»ΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ;
ΠΠ°ΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Postgres ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ.
Π₯ΠΎΡΠΈΡΠ΅ Π·Π°ΠΊΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² Π·Π½Π°Π½ΠΈΡΡ ΠΏΠΎ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
ΠΠ΅Π½Ρ 1. ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
1. Π§ΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΡΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ.
2. ΠΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ:
ΠΏΠ΅ΡΠ²Π°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
Π²ΡΠΎΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
ΡΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° ΠΠΎΠΉΡΠ°-ΠΠΎΠ΄Π΄Π°
ΡΠ΅ΡΠ²Π΅ΡΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
ΠΏΡΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
Π΄ΠΎΠΌΠ΅Π½Π½ΠΎ-ΠΊΠ»ΡΡΠ΅Π²Π°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
ΡΠ΅ΡΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°
3. ΠΠ΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π§ΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ?
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. Π ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ
ΠΠ΅Π½Ρ 2. ΠΠ½Π΄Π΅ΠΊΡΡ
1. Π§ΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ
2. ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
3. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ psql: B-Π΄Π΅ΡΠ΅Π²ΠΎ, Ρ Π΅Ρ, GiST, SP-GiST, GIN, BRIN
4. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ.
ΠΠ΅Π½Ρ 3. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
Π§ΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ?
ACID
Π’Π΅ΠΎΡΠ΅ΠΌΠ° Π‘ΠΠ
Π£ΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (share lock, exclusive lock, advisory lock)
mvcc ΠΈ ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΠΏΠΎΡΡΠ³ΡΠ΅ΡΠ΅
deadlock
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ. Π ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Π£Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΎΠ½ΠΈ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΡΡ
Π‘ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΏΠΎΠΈΡΠΊ Π² PSQL
Π£Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ; ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ²Π°ΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ, Π° Π² ΠΊΠ°ΠΊΠΈΡ , Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΎΠ½ΠΈ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
Π’Π°ΡΠΈΡ "ΠΡΠ°ΠΊΡΠΈΠΊ".
favorite
0
star
0
