ΠΠΎΡΠ»Π΅ Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π½ΠΎΠ²Π°Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΠΊΠ° Π‘Π£ΠΠ 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