ОбновлСниС PostgreSQL 14.4 с исправлСниСм поврСТдСния индСксов

Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ выпуск Π‘Π£Π‘Π” PostgreSQL 14.4, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ устранСна ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… приводящая ΠΊ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΌΡƒ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² индСксах ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ «CREATE INDEX CONCURRENTLY» ΠΈ «REINDEX CONCURRENTLY». Π’ созданных ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ индСксах ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡƒΡ‡Ρ‚Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ записи, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ пропуску ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строк ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ SELECT-запросов с ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… индСксов.

Для опрСдСлСния Ρ„Π°ΠΊΡ‚Π° поврСТдСния индСксов B-tree ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «pg_amcheck —heapallindexed имя_Π‘Π”». Π’ случаС выявлСния ошибок ΠΈΠ»ΠΈ примСнСния Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… выпусках ΠΊΠΎΠΌΠ°Π½Π΄ «CREATE INDEX CONCURRENTLY» ΠΈ «REINDEX CONCURRENTLY» с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ индСксов (GiST, GIN ΠΈ Ρ‚.ΠΏ.) послС обновлСния Π΄ΠΎ вСрсии 14.4 рСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ «reindexdb —all» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «REINDEX CONCURRENTLY имя_индСкса».

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ‚ΠΊΠ° 14.x, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ VACUUM Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, связанныС с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ «CREATE INDEX CONCURRENTLY» ΠΈ «REINDEX CONCURRENTLY». Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ примСнСния этих ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Π² созданныС Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «CONCURRENTLY» индСксы Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находящиСся Π² heap-памяти ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΡƒΡ€Π΅Π·Π°Π½Ρ‹ Π²ΠΎ врСмя создания индСкса.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru