Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π‘Π£ΠΠ PostgreSQL 17. ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΏΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π΄ΠΎ Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2029 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° PostgreSQL 12.x, Π½Π°ΠΉ-ΡΡΠ°ΡΠ°ΡΠ° ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° Π½Π° 14 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° VACUUM (ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅Π½ΡΠΆΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅) Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° Π½ΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΡΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° Π΄ΠΎ 20 ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ. ΠΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄Π° ΡΠ΅ ΡΡΠΊΠΎΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ VACUUM ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ.
- ΠΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π²Ρ ΠΎΠ΄Π°/ΠΈΠ·Ρ ΠΎΠ΄Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π»ΠΎΠ³Π° Π·Π° Π·Π°Π±Π°Π²Π΅Π½Π° Π·Π°ΠΏΠΈΡ WAL Π΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°ΡΠ° Π΄ΠΎ Π΄Π²Π° ΠΏΡΡΠΈ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° Π·Π°ΠΏΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ ΡΡΠΊΠΎΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ANALYZE.
- ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Ρ ΠΈΠ·ΡΠ°Π·Π° βINβ, ΠΊΠΎΠ³Π°ΡΠΎ Π² ΡΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° B-tree. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΡΡΡΠΎΠ΅Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ BRIN (Block Range Index). Π ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° βNOT NULLβ ΠΈ Π΅ ΡΡΠΊΠΎΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ (Common Table Expression, CTE), Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· SQL ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βWITHβ. ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° (SIMD) Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° bit_count ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ AVX-512.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΌΠ°ΡΠ° JSON, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ° SQL/JSON. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ JSON-TABLE Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° JSON Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Π½Π° PostgreSQL, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½ΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ jsonpath Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ JSON Π² ΡΠΎΠ΄Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ Π·Π° PostgreSQL. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ (JSON, JSON_SCALAR ΠΈ JSON_SERIALIZE) ΠΈ Π·Π°ΡΠ²ΠΊΠ° (JSON_EXISTS, JSON_QUERY ΠΈ JSON_VALUE) Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ° JSON.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° SQL ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«MERGEΒ», ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΠΎΠ²Π½ΠΈ SQL ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠΈ Π² Π΅Π΄Π½ΠΎ ΠΈΠ·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ INSERT, UPDATE ΠΈ DELETE. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ·ΡΠ°Π·Π° RETURNING, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ ΠΈ Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡΠ΅, Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π³Π»Π΅Π΄ΠΈ.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΈ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ. Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° COPY ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Π΄ΠΎ Π΄Π²Π° ΠΏΡΡΠΈ, ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΈ ΡΠ΅Π»Π΅Π²ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° ON_ERROR, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ»Π΅Π΄ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π²ΠΌΡΠΊΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
- ΠΠ° ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Ρ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Β«Constraint exclusionΒ».
- Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Foreign Data Wrapper (postgres_fdw) Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΡΠ²ΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΈ Β«EXISTSΒ» ΠΈ Β«IN.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Β«CollationΒ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠΌΠΈΡΡΠ»Π° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ΅ ΠΎΡΡΠΈΡΠ° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠΈΠ½ΡΡ ΠΈ ΡΠΎΡΠΊΠ° ΠΏΡΠ΅Π΄ ΡΠΈΡΠ»ΠΎΡΠΎ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅, Π° ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ΅Π³ΠΈΡΡΡΡΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π°ΠΊΡΠ΅Π½Ρ). ΠΠΎΠ²ΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΅Π΄Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, Π½Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° PostgreSQL.
- Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ ΡΡΡΠ²ΡΡ, Π²Π½Π°ΡΡΠ½ΠΈ Π² ΠΠ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠΈ, Π΅ ΡΠ»Π΅ΡΠ½Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π‘Π£ΠΠ. ΠΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈ, ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ΅Π»ΠΈΠΉΠ·, Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ ΡΠ»ΠΎΡΠΎΠ²Π΅ΡΠ΅ Π·Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π΄Π° ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ, ΡΠ΅Π³Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»ΠΎΡΠΎΠ²Π΅ΡΠ΅. ΠΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΡΡΡΠ²ΡΡ (failover) Π·Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΡΠΈΠ»ΠΈΡΠ° pg_createsubscriber Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π² Π½ΠΎΠ²Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ Β«sslnegotiationΒ» Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ΅Π½ΠΈ TLS Π²ΡΡΠ·ΠΊΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° TLS ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ ALPN.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΎΠ»Ρ pg_maintain, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΡΠ°Π²ΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π‘Π£ΠΠ.
- Π ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° pg_basebackup, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ Π½Π° ΠΠ, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ. ΠΠ° ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ»Π½ΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΠΊΠΎΠΏΠΈΡ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π° ΡΡΠΈΠ»ΠΈΡΠ° pg_combinebacku. Π ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° pg_dump Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βfilterΒ» Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π² Π΄Π°ΠΌΠΏΠ° ΠΎΠ±Π΅ΠΊΡΠΈ.
- ΠΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° SQL ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«EXPLAINΒ» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΏΡΠ΅ΠΊΠ°ΡΠ°Π½ΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄. Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«EXPLAINΒ» ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈ Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ ΠΎΠΏΡΠΈΠΈ Β«MEMORYΒ» ΠΈ Β«SERIALIZEΒ», Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΏΡΠ΅ΠΊΠ°ΡΠ°Π½ΠΎ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ Π·Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° VACUUM Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ pg_wait_events, ΠΊΠΎΠ΅ΡΠΎ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ pg_stat_activity ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΅ΡΠΈΠΈ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
