Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π΅ΡΠΎΠΊ PostgreSQL: 14.3, 13.7, 12.11, 11.16 ΠΈ 10.22. ΠΠ΅ΡΠΊΠ° 10.x ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°Π΅ΡΡΡ ΠΊ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎ Π½ΠΎΡΠ±ΡΡ 2022 Π³ΠΎΠ΄Π°). ΠΡΠΏΡΡΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π²Π΅ΡΠΊΠΈ 11.x ΠΏΡΠΎΠ΄Π»ΠΈΡΡΡ Π΄ΠΎ Π½ΠΎΡΠ±ΡΡ 2023 Π³ΠΎΠ΄Π°, 12.x β Π΄ΠΎ Π½ΠΎΡΠ±ΡΡ 2024 Π³ΠΎΠ΄Π°, 13.x β Π΄ΠΎ Π½ΠΎΡΠ±ΡΡ 2025 Π³ΠΎΠ΄Π°, 14.x β Π΄ΠΎ Π½ΠΎΡΠ±ΡΡ 2026 Π³ΠΎΠ΄Π°.
Π Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π½Π°Π΄ 50 ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ ΠΈ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° CVE-2022-1552, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ Autovacuum, REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW, CLUSTER ΠΈ pg_amcheck. ΠΠ°ΠΏΠ°Π΄Π°ΡΠ΅Π», ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΏΡΠ°Π²Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡΠ΅Ρ ΠΎΠ΄Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° ΡΡ Π΅ΠΌΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ SQL ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Ρ ΠΏΡΠ°Π²Π° Π½Π° ΡΡΠΏΠ΅ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° ΠΏΠΎ-Π³ΠΎΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΡΠ°Π΅ΡΠΈ ΠΎΠ±Π΅ΠΊΡ Π½Π° Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ. ΠΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΎΡ autovacuum.
ΠΡΠΈ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠ΄Π΅ΠΉΡ, ΠΊΠ°ΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ° autovacuum ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW ΠΈ CLUSTER, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° pg_amcheck ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΎΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ Ρ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° pg_dump. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° VACUUM Π΅ ΠΏΡΠΈΠ·Π½Π°ΡΠΎ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π°ΠΊΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π½Π° Π΄ΠΎΠ²Π΅ΡΡΠ²Π°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΡ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ ΡΠΏΠ΄Π΅ΠΉΡ Π½Π° ΠΊΠΎΠ΄Π° JIT Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ LLVM 14, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ database.schema.table Π² ΡΡΠΈΠ»ΠΈΡΠΈΡΠ΅ psql, pg_dump ΠΈ pg_amcheck, ΠΏΠΎΠΏΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΠΎΠ΄Π΅ΡΠΈ Π΄ΠΎ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° GiST ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ Π½Π°Π΄ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ltree, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π·Π°ΠΊΡΡΠ³Π»ΡΠ½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² Π΅ΠΏΠΎΡ Π°, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Ρ ΡΠΈΠΏ interval, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈ CLUSTER Π½Π°Π΄ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Ρ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈ, Π·Π°Π³ΡΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΡΠΏΠΈΡΠ°Π½Π΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΏΠΎΡΡΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½ GiST ΠΈΠ½Π΄Π΅ΠΊΡ, Π²Π·Π°ΠΈΠΌΠ½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΡΡΡΠ΅Π·Π°ΡΠ΅Π»Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° DROP TABLESPACE ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ (checkpoint).
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π²ΡΠΏΡΡΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ pg_ivm 1.0 Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ IVM (Incremental View Maintenance) Π΄Π»Ρ PostgreSQL 14. IVM ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. IVM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΊ Π½ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«REFRESH MATERIALIZED VIEWΒ».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
