แชแฎแ แแแแแกแ แแ แแแแแฅแกแแแแ แแคแแแฅแแแแก แแคแแฅแขแ แคแแ แแแ แแ แแก แชแแแแแแ แแ แแ แ แแฎแแแแ Postgres-แจแแ แฌแแ แแแแแแแแแ. แแ แกแแแแแก แแแกแ แแแแแแ แแแแก แแแแแ, แ แแแแ แแชแแ VACUUM FULL แแ CLUSTER, แแแแ แแ แแกแแแ แแแแแแแแ แชแฎแ แแแแแก แแฃแจแแแแแก แแ แแก แแ, แจแแกแแแแแแกแแ, แแแแ แแแแแงแแแแแ แงแแแแแแแแก แจแแฃแซแแแแแแแ.
แกแขแแขแแ แจแแแชแแแก แแชแแ แ แแแแ แแแก แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฉแแแแแ แแคแแแฅแแแ, แ แแแแ แจแแแแซแแแแ แแแ แซแแแแ แแแก, แแแแแแแแแแฃแ แจแแแฆแฃแแแแแกแ แแ แแแ แแ แแแแแแแแก pg_repack แแแคแแ แแแแแแก แแแแแงแแแแแแกแแแ แแแแแแจแแ แแแแ.
แแก แกแขแแขแแ แแแฌแแ แแแแ แกแแคแฃแซแแแแแ
แ แแขแแ แฉแแแแแ แจแแจแฃแแแแ?
Postgres แแคแฃแซแแแแ แแ แแแแ แแแ แกแแแก แแแแแแก (
แชแฎแแแแ, แงแแแแ แแก แแแ แกแแ แฃแแแ แแงแแก แจแแแแฎแฃแแ. Postgres แแฃแจแแแแก แแแฎแกแแแ แแแแ แแแแ แแ-แแแแ แแ แแ แแแแ แแ แแ แแก แแแแแแแแฃแ แ แ แแแแแแแแแก แแแแแชแแแแแ, แ แแแแแก แฌแแแแแฎแแแช แจแแกแแซแแแแแแแ แแแกแแแแแ แแ แฉแแฌแแ แ. แแแแแ แจแแแฎแแแแ แแชแแ แ แแแแแแแแก แแแแก แแแกแแแแแแ, แแฃ แ แแแแ แฎแแแแ แแก.
แแแฅแแแ, แแแแฅแแก แชแฎแ แแแ, แ แแแแแกแแช แ แแแแแแแแ แฉแแแแฌแแ แ แแแแแแแขแแ. แแฎแแแ แแแแแชแแแแแ แแแแแฉแแแ แคแแแแแก แแแ แแแ แแแแ แแแ, แกแแแแช แชแฎแ แแแ แแแแฎแแแ. แแก แแ แแก แแฌแแ แแแแแแก แชแแชแฎแแแ แแแ แกแแแแ, แ แแแแแแแช แฎแแแแแกแแฌแแแแแแ แกแฎแแ แขแ แแแแแฅแชแแแแแ แฉแแแแแแก แจแแแแแ (แกแแแแ แขแแแแกแแแแก, แฉแแแ แแแแแ แแฃแแแแ, แ แแ แแแแแแชแแแก แแแแ แแ แแก แฌแแแแแฎแฃแแ แฉแแแแแแแ).
แจแแแแแ แฉแแแ แแแแแแแฎแแแ แแ แ-แแ แแ แฉแแแแฌแแ แ, แ แแแแช แแฆแแแแจแแแ แซแแแแ แแแ แกแแ, แ แแแแ แช แแ แแ แแแแแแแขแฃแ แ.
แแแแแฏ-แแแแแฏ, แแฌแแ แแแแก แแแ แกแแแแแก แแแแแฎแแแแ แแ แฌแแจแแ, แฉแแแ แแแแแฆแแ แแแแ แแ, แ แแแแแจแแช แแแแแชแแแแแแก แแแแฎแแแแแแ แแแฎแแแแ แ แแ แแก "แแแแแแ". แแก แแแแแชแแแแแ แแ แฉแแแก แแแแแกแแแแ แ แขแ แแแแแฅแชแแแกแแแแก.
Postgres-แก แแฅแแก แแแฅแแแแแแ
แแกแ แ แแ, แฉแแแแก แแแแแแแแจแ, แแ แแแก แแแ แแแแฃแ แแแแแแขแจแ แชแฎแ แแแ แจแแแแแแ แแแฎแ แแแแ แแแกแแแ, แแแแ แแ แแฎแแแแ แแแฎแแแแ แ แจแแแชแแแก แชแแชแฎแแ แแแแแชแแแแแก. แจแแแแแแ, แชแฎแ แแแแ แฌแแแแแแกแแก แฉแแแ แฌแแแแแแแฎแแแ แแแแ แแ แแแข แแแแแชแแแก, แแแแ แ แกแแญแแ แแ.
แแแจแแแแช แแ, แแฃ VACUUM แแฎแแ แฌแแจแแแก แงแแแแ แจแแฃแกแแแแแ แแฌแแ แแแแก แแแ แกแแแก, แกแแขแฃแแชแแ แแแแแแ แแ แแ แแแฃแแฏแแแแกแแแแ. แฉแแแ แแแแฅแแแแ แแแแแกแฃแคแแแ แแแแแแ แแแแ แแแแแ แแ แแฃแแแแช แแแแ แแแแ แแแแแ แแฎแแแ แ แแแแแแกแแแแก, แแแแ แแ แแแแแช แฌแแแแแแแฎแแแ แกแแญแแ แแแ แแแข แแแแแชแแแก.
แกแฎแแแแ แจแแ แแก, แแฃ แแแแแแแแ แชแแ แแแแ แแแแ แแ (แฉแแแแก แแแแแแแแจแ แแแแ แ) แแงแ แคแแแแแก แแแแแก, แแแจแแ VACUUM แจแแซแแแแแ แแแก แแแ แแแแก. แแแแ แแ แแฎแแ แแก แจแฃแแจแแ, แแกแ แ แแ, แแแกแแแ แแ แแคแแ แ แจแแแซแแแแ แแแแแแแแก.
แ แแแแกแแช แแกแแแ แชแแ แแแแ แแ แซแแแแแ แแฌแแ แ แแแแ แแแแแก แ แแแแแแแแ แแแแ แฎแแแแ, แ แแกแแช bloat แฐแฅแแแ, แแก แแฌแงแแแก แแแฅแแแแแแแแ แแแแแฅแแแแแแแก.
แงแแแแแคแแ แ, แ แแช แแแแแ แแ แแก แแฆแฌแแ แแแ, แแ แแก แชแฎแ แแแแแจแ แจแแจแฃแแแแแก แฌแแ แแแฅแแแแก แแแฅแแแแแแ. แแแแแฅแกแแแจแ แแก แแแแฎแแแแแแ แแแแแแแแฃแ แแ แฎแแแแ.
แแ แแแฅแแก แจแแแแ แแแแแ?
แแ แกแแแแแก แ แแแแแแแแ แแแ แแแแก แแแกแแแแแแแ, แแแฅแแ แแฃ แแ แ แจแแจแฃแแแแ. แแแ แแแแแก แแแแ แแ แแก Postgres-แแก แจแแแ แกแขแแขแแกแขแแแแก แแแแแงแแแแแ, แ แแแแแแช แจแแแชแแแก แแแแฎแแแแแแ แแแคแแ แแแชแแแก แชแฎแ แแแแแจแ แกแขแ แแฅแแแแแแก แ แแแแแแแแแก, โแชแแชแฎแแแโ แกแขแ แแฅแแแแแแก แ แแแแแแแแแก แจแแกแแฎแแ แแ แ.แจ. แแแขแแ แแแขแจแ แจแแแแซแแแแ แแแแแแ แแแ แกแแ แแแขแแแแก แแ แแแแแ แแแ แแแชแแ. แฉแแแ แกแแคแฃแซแแแแ แแแแฆแแ
แแแแแ แแ แแ แแแ แแ แแก แแแคแแ แแแแแแก แแแแแงแแแแแ
แฉแแแ แแแแแแฉแแแ, แ แแ แแชแแ แ bloat แฆแแ แแแฃแแแแ, แแแ 20%, แแแกแแฆแแแ. แแก แจแแแซแแแแ แฉแแแแแแแแก แจแแแแแกแแแแแก แแแแแแแแ
แจแแแแ แแแแแแก แฌแแแแแฆแแแแ แแ แซแแแแก แแแแแ
Postgres-แก แแฅแแก แ แแแแแแแแ แแแ, แ แแแ แแแฃแแแแแแแแก แจแแจแฃแแแแแก, แแแแ แแ แแกแแแ แงแแแแแแแแก แแ แแ แแก แจแแกแแคแแ แแกแ แงแแแแแกแแแแก.
แแแแแแแคแแแฃแ แแ แแ AUTOVACUUM แแกแ, แ แแ แแคแแแฅแแแ แแ แแแฎแแแก. แฃแคแ แ แกแฌแแ แแ, แ แแ แจแแแแแแ แฉแฃแแแ แแก แแฅแแแแแแแก แแแกแแฆแแ แแแแแแ. แ แแแแ แช แฉแแแก, แแก "แแแแแขแแแก" แ แฉแแแแ, แแแแ แแ แกแแแแแแแแแแจแ แแแแก แแแฆแฌแแแ แงแแแแแแแแก แแแแแแ แแ แแ แแก. แแแแแแแแแ, แแฅแแแ แแแฅแแ แแฅแขแแฃแ แ แแแแแแแแ แแแ แแแแแชแแแแ แกแฅแแแแจแ แ แแแฃแแแ แฃแแ แชแแแแแแแแแแ, แแ แฎแแแแ แ แแแแ แกแแฎแแก แแแแแชแแแแ แแแแ แแชแแ. แจแแแแแแ, แแฅแแแแ แแแขแแแ แแแแก แแ แแคแแแ แจแแแซแแแแ แฎแจแแ แแ แจแแแชแแแแแก แแ, แ แแแแ แช แฌแแกแ, แแแแกแฎแแแแแแแ แชแฎแ แแแแแแ แชแฎแ แแแจแ. แแก แแแจแแแแก, แ แแ แแฃแแแแแแ แฃแแแ แแแฃแจแแแ แชแแขแ แฌแแ แแ แแแแงแแแแ AUTOVACUUM แแแแแแฃแแ แแแแแแแก แชแแแแแแแ แแ แแคแแแแ. แแแแ แแ, แชแฎแแแแ, แแแแก แแแแแแแแ แแแแแแ แแ แแ แแก.
แแแแแ แแ แแ แแแแ แชแแแแแฃแแ แแแแแแ, แ แแก แแแแแช AUTOVACUUM แแแ แแแ แซแแแแแก แชแฎแ แแแแแก, แแ แแก แแก, แ แแ แแ แกแแแแแก แฎแแแแ แซแแแแ แขแ แแแแแฅแชแแแแ, แ แแแแแแแช แฎแแแก แฃแจแแแก แแแก แแ แขแ แแแแแฅแชแแแแแกแแแแก แฎแแแแแกแแฌแแแแแ แแแแแชแแแแแแก แแแกแฃแคแแแแแแแจแ. แ แแแแแแแแแชแแ แแฅแแช แแจแแแ แแ - แแแแจแแ แแ โแฉแแแแแแแแแฃแแโ แขแ แแแแแฅแชแแแแ แแ แแแแแแฃแแแแแ แแแแงแแแแแ แแฅแขแแฃแ แ แขแ แแแแแฅแชแแแแแก แแ แ. แแแแ แแ แแฃ แแฅแแแแก แแแแแแแชแแแแ แแแขแแแ แแแ แแ แแก OLAP-แแกแ แแ OLTP-แแก แฐแแแ แแแ, แแแจแแ แจแแแแซแแแแ แแ แแแ แแฃแแแ แแฅแแแแแ แแ แแแแแ แฎแจแแ แ แแแแแฎแแแแ แแ แแแแแ แแแแฎแแแแ, แแกแแแ แแ แซแแแแแแแแแ แแแแ แแชแแแแ - แแแแแแแแแ, แแแแแ แแจแแก แจแแฅแแแ. แแกแแ แแแแแ แแแแจแ, แฆแแ แก แคแแฅแ แ แแแขแแแ แแแแก แแแแ แชแแแแแแแ แกแฎแแแแแกแฎแแ แแแแแแแ, แ แแช แกแแจแฃแแแแแแก แแแกแชแแแก แแแแแแฃแแ แแแแแแแแก แฃแคแ แ แแแฎแแแฌแแก.
แแแแแ แแ แแ แแแแแแแแ - แแแจแแแแช แแ, แแฃ แแ แแคแแแ แแ แแแแแ แแแแแแ, แแแแ แแ แแแแแชแแแแ แแแแ แแ แแก แซแแแแแ แแแฆแแแ แแแขแแแ แแแแก แฅแแแจ, แแแจแแ แงแแแแแแ แแแ แแกแแฃแแ AUTOVACUUM-แแช แแ แจแแแซแแแแ แแแ แแแฃแแแแแแแแก แแ แแคแแแฅแแแ แแแฎแแแแ. แกแแแแแ แแแ (แแแ แขแแแแแฃแ แ แแ แฐแแ แแแแแขแแแฃแ แ) แแ แแแแแ แแ แแแแแกแแแแแแ.
แ แ แฃแแแ แแแแแแแแ แแ แกแแขแฃแแชแแแจแ, แ แแแแกแแช แแฅแแแ แแแแงแแแแ AUTOVACUUM, แแแแ แแ แจแแแแ แแแแแ แแแ แซแแแแแก แแ แแแก.
แแฃแแแ แแแแฃแฃแแ แกแแแกแ แแฆแแแแแแก แชแฎแ แแแแแแกแ แแ แแแแแฅแกแแแแก แจแแแแแแกแก แแ แขแแแแแก แแแแจแ แแฎแแแแ แจแแกแแแแแแก แแแแแชแแแแแก. bloat-แแก แแฆแแแกแแคแฎแแ แแแแ แแก แแจแแแแแแ แแ แแฃแจแแแแก, แแแแ แแ แแแกแ แจแแกแ แฃแแแแแก แแ แแก แแญแแ แก แแแแแแแแ แแฅแกแแแฃแแแฃแ แกแแแแขแก (AccessExclusiveLock), แ แแแแแแช แแ แแแฃแจแแแแก แแ แแแแแแแแ แจแแแแแฎแแแก แจแแกแ แฃแแแแแก, แแฃแแแแช แแ แฉแแแก. แแฃ แแฅแแแ แแแฅแแ แกแแจแฃแแแแแ แจแแแฉแแ แแ แแฅแแแแ แกแแ แแแกแ แแ แแแกแ แแแฌแแแ แแแ แแแแฃแแ แแ แแแ (แแแแแแ แฌแฃแแแแแ แ แแแแแแแแ แกแแแแแแแ, แ แแช แแแแแแแแแแฃแแแ แแแแแชแแแแ แแแแแก แแแแแแ แแ แแฅแแแแก แแแแ แแขแฃแ แแแ), แแแจแแ แแก แแแ แแแแขแ แกแแฃแแแแแกแแ. แกแแแฌแฃแฎแแ แแ, แฉแแแ แแ แแแแฅแแก แแ แ VACUUM FULL-แแก แแแกแแจแแแแแ แแแแแแแแแ แแแแแแก แแ แแก, แแแแขแแ แแก แแแแแแ แฉแแแแแแแก แแ แแ แแก แจแแกแแคแแ แแกแ.
แแฃแแแ แแแแกแขแแ แ แแฆแแแแแแก แชแฎแ แแแแแแก แจแแแแแแกแก แแกแแแ, แ แแแแ แช VACUUM FULL, แแแแ แแ แแแซแแแแ แกแแจแฃแแแแแแก แแแฃแแแแแ แแแแแฅแกแ, แ แแแแแก แแแฎแแแแแแแช แแแแแชแแแแแ แคแแแแแฃแ แแ แแแแแแแแแ แแแกแแแ (แแแแ แแ แแแแแแแแจแ แจแแแแแแ แแ แแ แแก แแแ แแแขแแ แแแฃแแ แแฎแแแ แ แแแแแแกแแแแก). แแแ แแแแฃแ แกแแขแฃแแชแแแแจแ, แแก แแ แแก แแแ แแ แแแขแแแแแแชแแ แ แแแ แแแแฎแแแแแแแกแแแแก - แแ แแแแแ แฉแแแแฌแแ แแก แแแแแฅแกแแก แฌแแแแแฎแแแ. แแ แซแแแแแแก แแแแฃแกแ แแแแแแ, แ แแช VACUUM FULL - แแก แแแแแแแก แแแแแแแก แแแแ แแชแแแก แแ แแก.
แแฃแแแ แ แแแแแแฅแกแ แฌแแแ แแ แแก แแกแแแแกแ, แแแแ แแ แแฆแแแแแแก แแแแแ แแขแฃแ แแแแแฅแกแก แแ แชแฎแ แแแแก แงแแแแ แแแแแฅแกแก. แกแแแแขแแแ แแแแแ แกแฃแกแขแแ: ShareLock แแแแแแแแ (แแคแแ แฎแแแก แแแแแคแแแแชแแแแก, แแแแ แแ แแซแแแแ แแ แฉแแแแก แกแแจแฃแแแแแแก) แแ AccessExclusiveLock แแแแแฅแกแแ, แ แแแแแแช แฎแแแแฎแแ แแจแแแแแฃแแแ (แแแแแแแก แจแแแแแฎแแแแก แแ แแแแแฅแกแแก แแแแแงแแแแแแ). แแฃแแชแ, Postgres-แแก แแ-12 แแแ แกแแแจแ แแแแแฉแแแ แแแ แแแแขแ แ
Postgres-แแก แแแ แแแแแ แแแ แกแแแแจแ, แแฅแแแ แจแแแแซแแแแ แแแแฆแฌแแแ REINDEX-แแก แแกแแแแก แจแแแแแก แแ แแแ แแฃแแแ แแแแแงแแแแแแ
แแแแแแแ, แแฃ แแแแแฅแกแแแแกแแแแก แแ แกแแแแแก แแแแแ, แ แแแ แแฆแแแแคแฎแแ แแก แแคแแแฅแแแ "แแแคแ แแแแกแแก", แแแจแแ แแแแแแแแแกแแแแก แแ แแ แกแแแแแก. แแฅ แแแฅแแแแแแก แกแฎแแแแแกแฎแแ แแแ แ แแแคแแ แแแแแแแ:
แ แแแแ แแฃแจแแแแก pg_repack
แแแฅแแแ, แแแแฅแแก แกแ แฃแแแแ แฉแแแฃแแแแ แแแ แชแฎแ แแแ - แแแแแฅแกแแแแ, แจแแแฆแฃแแแแแแ แแ, แกแแแฌแฃแฎแแ แแ, แแแฃแขแแ. pg_repack-แแก แแแ แแแแ แแแแแฏแ แแ แแก แแฃแ แแแแแก แชแฎแ แแแแก แจแแฅแแแ, แ แแแ แจแแแแแฎแแก แแแแแชแแแแแ แงแแแแ แชแแแแแแแแก แจแแกแแฎแแ แแแกแ แแแจแแแแแกแแก. แขแ แแแแ แ แแแแแแแ แแแก แแ แชแแแแแแแแแก แงแแแแแ แฉแแกแแแก, แแแแแฎแแแแแกแ แแ แฌแแจแแแกแแแแก. แจแแแแแ แแฅแแแแแ แชแฎแ แแแ, แกแขแ แฃแฅแขแฃแ แแ แแ แแแแแแแแก แแกแแแแกแ, แแแแ แแ แแแแแฅแกแแแแกแ แแ แจแแแฆแฃแแแแแแก แแแ แแจแ, แ แแแ แแ แจแแแแแแแก แแแแแชแแแแ แฉแแกแแแก แแ แแชแแกแ.
แจแแแแแ, pg_repack แแแแแกแชแแแก แแแแแชแแแแแก แซแแแแ แชแฎแ แแแแแแ แแฎแแ แชแฎแ แแแแ, แแแขแแแแขแฃแ แแ แคแแแขแ แแแก แงแแแแ แจแแฃแกแแแแแ แแฌแแ แแแก แแ แจแแแแแ แฅแแแแก แแแแแฅแกแแแก แแฎแแแ แชแฎแ แแแแกแแแแก. แงแแแแ แแ แแแแ แแชแแแก แจแแกแ แฃแแแแแกแแก แชแแแแแแแแแ แแ แแแแแแ แแฃแ แแแแแก แชแฎแ แแแจแ.
แจแแแแแแ แแแแแฏแ แแ แแก แชแแแแแแแแแแก แแฎแแ แชแฎแ แแแจแ แแแแแขแแแ. แแแแ แแชแแ แฎแแ แชแแแแแแแ แ แแแแแแแแ แแแแแแ แแแแแ แแ แ แแแแกแแช แแฃแ แแแแแก แชแฎแ แแแจแ 20-แแ แแแแแแแ แฉแแแแฌแแ แแ แแแ แฉแแแแแ, pg_repack แแซแแแก แซแแแแ แแแแแแ แแแแก, แแแแแแฅแแก แฃแแฎแแแก แแแแแชแแแแแก แแ แชแแแแก แซแแแ แชแฎแ แแแก แแฎแแแ Postgres แกแแกแขแแแแก แชแฎแ แแแแแจแ. แแก แแ แแก แแ แแแแแ แแ แแ แซแแแแแ แแแแแ แแ แ, แ แแแแกแแช แแแแแแแกแแแ แแฃแจแแแแแก แแแ แจแแซแแแแ. แแแแก แจแแแแแ, แซแแแแ แชแฎแ แแแ แแ แชแฎแ แแแ แแฃแ แแแแแแแ แฌแแแจแแแแ แแ แคแแแแฃแ แกแแกแขแแแแจแ แกแแแ แชแ แแแแแกแฃแคแแแแแ. แแ แแชแแกแ แแแกแ แฃแแแแฃแแแ.
แแแแ แแฃแแแ แงแแแแแคแแ แ แแจแแแแแแ แแ แแแแแแงแฃแ แแแ, แแแแ แแ แ แ แฎแแแแ แแ แแฅแขแแแแจแ? แฉแแแ แแแแแแชแแแแ pg_repack แแแขแแแ แแแแก แแแ แแจแ แแ แแแขแแแ แแแแก แฅแแแจ แแ แจแแแแแแฌแแแ แแแกแ แแแฅแแแแแแ แแแแแ แแแ แแแฉแแ แแแแก แจแแแแฎแแแแแจแ (แกแฎแแ แกแแขแงแแแแแ, Ctrl+C แแแแแงแแแแแแ). แงแแแแ แขแแกแขแ แแแแแแแแ แแงแ.
แฌแแแแแแ แแแแแแก แแแฆแแแแแจแ - แจแแแแแ แแ แงแแแแแคแแ แ แแกแ แแ แฌแแแแแ, แ แแแแ แช แแแแแแแ.
แแแ แแแแ แแแแแ แแงแแแแแ
แแแ แแแ แแแแกแขแแ แแ แแแแแฆแแ แจแแชแแแแ แฃแแแแแแฃแ แ แจแแแฆแฃแแแแก แแแ แฆแแแแแก แจแแกแแฎแแ:
$ ./pg_repack -t tablename -o id
INFO: repacking table "tablename"
ERROR: query failed:
ERROR: duplicate key value violates unique constraint "index_16508"
DETAIL: Key (id, index)=(100500, 42) already exists.
แแ แจแแแฆแฃแแแแก แฐแฅแแแแ แแแขแแแแขแฃแ แแ แแแแแ แแ แแแฃแแ แกแแฎแแแ index_16508 - แแก แจแแแฅแแแ pg_repack-แแก แแแแ . แแแก แจแแแแแแแแแแแแจแ แจแแแแแแแ แแขแ แแแฃแขแแแแก แกแแคแฃแซแแแแแ, แฉแแแ แแแแแกแแแฆแแ แแ "แฉแแแแ" แจแแแฆแฃแแแ, แ แแแแแแช แจแแแกแแแแแแแ แแแก. แแ แแแแแแ แแก แแงแ, แ แแ แแก แแ แแ แแก แกแ แฃแแแแ แฉแแแฃแแแแ แแแ แจแแแฆแฃแแแ, แแ แแแแ แแแแแแแแฃแแ (
แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแ: แ แแขแแ แแ แแก แกแแญแแ แ แแ แ แแแแ แแฃแจแแแแก
แแแขแแ แ แแแแ แแ แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแแก แจแแกแแฎแแ.
แแแแแแฎแแแแ แแแ แขแแแ แแแแแแแแ: แฉแแแ แแแแฅแแก แแแแฅแแแแแแก แชแฎแ แแแ-แกแแชแแแแแ แ แฌแแแแ แแ แ แแขแ แแแฃแขแแ - แแแแฅแแแแก แแแกแแฎแแแแแ แแ แจแแแแแแ แแแ แแฅแขแแ แแแจแ.
create table cars
(
name text constraint pk_cars primary key,
ord integer not null constraint uk_cars unique
);
แแแฅแแแ, แแแญแแ แแแแแแ แแแ แแแแ แแ แแแแ แ แแแแฅแแแแแแก แแแแแชแแแ. แแแ แขแแแ แแแแแกแแแแแ แแ แแก แแแ แแแแ แแแแจแแแแแแแแก แแแแ แแแ แแแแแฎแแแแ, แฎแแแ แแแแ แ แแแ แแแแแ:
begin;
update cars set ord = 2 where name = 'audi';
update cars set ord = 1 where name = 'bmw';
commit;
แแแแ แแ แ แแแแกแแช แแ แแแแก แแแขแแ แแแ, แฉแแแ แแแแแแแแแ แจแแแฆแฃแแแแก แแแ แฆแแแแแก, แ แแแแแ แชแฎแ แแแจแ แแแแจแแแแแแแแแแก แแแแแแแแแแ แแแ แฃแแแแแแฃแ แแ:
[23305] ERROR: duplicate key value violates unique constraint โuk_carsโ
Detail: Key (ord)=(2) already exists.
แ แแแแ แแแแแแแแ แกแฎแแแแแแ แแ? แแแ แแแแขแ แแแ แแแแ: แแแแแแขแแ แแแแแขแแแแแ แฆแแ แแแฃแแแแแก แฉแแแแชแแแแแ แจแแแแแแแก, แ แแแแแแช แแแ แแแขแแ แแแฃแแแ, แ แแ แแ แแ แกแแแแแก แชแฎแ แแแจแ, แแแแแแแแแ "-1". แแ แแแ แแแแ แแแแจแ แแแแก แแฌแแแแแ "แแ แ แชแแแแแแก แแแแจแแแแแแแแแแก แแแชแแแ แแแกแแแแจแ". แแ แแแแแแแก แแ แแแแแ แแ แแแแแ แแ แแก แแแแแขแแแแแ แแแแแฎแแแแ.
แแแ แแแแขแ แแแแ แ: แชแฎแ แแแแก แฎแแแแฎแแแ แแแแแแแ, แ แแแ แแแแแแงแแแแก แแชแฃแ แแแ แฌแแ แขแแแแก แแแแแชแแแแ แขแแแ แจแแแแแแแก แแแแจแแแแแแแแกแแแแก แแแแแ แ แแชแฎแแแแแก แแแชแแแแ. แจแแแแแ, แแแแจแแแแแแแแก 1-แแแ, แแแแแแแแแ, 2.5-แแแ แแแแแฎแแแแแกแแก, แแแ แแแแ แฉแแแแฌแแ แ แแแขแแแแขแฃแ แแ โแแแแแแแโ แแแแ แแกแ แแ แแแกแแแแก แจแแ แแก. แแก แแแแแกแแแแแ แแฃแจแแแแก, แแแแ แแ แแ แกแแแแแก แแ แ แจแแแฆแฃแแแ. แแแ แแแแ, แแก แแ แแแฃแจแแแแแก แแฅแแแแแแแก, แแฃ แแแแจแแแแแแแ แแแแแแงแแแแแ แกแแแแ แแแขแแ แคแแแกแจแ. แแแแ แแช, แแแแแชแแแแ แขแแแแก แกแแแฃแกแขแแแแ แแแแแแแแแแ แ, แแฅแแแ แแแฅแแแแแ แจแแแฆแฃแแฃแแ แ แแแแแแแแแก แจแแกแแซแแ แฉแแแแ แแแแ แงแแแแ แฉแแแแฌแแ แแก แแแแจแแแแแแแแแแก แฎแแแแฎแแ แแแแแแแแแแแ.
แแแ แแแแขแ แกแแแ: แจแแแฆแฃแแแแก แแแแแแแแ แแกแ, แ แแ แแก แจแแแแฌแแแแก แแฎแแแแ แฉแแแแแแก แแ แแก:
create table cars
(
name text constraint pk_cars primary key,
ord integer not null constraint uk_cars unique deferrable initially deferred
);
แแแแแแแแ แฉแแแแ แแแแแแแแ แแแแ แแแแฎแแแแแก แแแแแแ แฃแแ แฃแแแแแงแแคแก, แ แแ แงแแแแ แแแแจแแแแแแแ แฃแแแแแแฃแ แแ แฉแแแแแแก แแ แแก, แแก แฌแแ แแแขแแแแก แแแแฆแฌแแแก.
แแแแแ แแแแฎแแแฃแแ แแแแแแแแ, แ แ แแฅแแ แฃแแแ, แซแแแแแ แกแแแแแแฃแ แแ, แแแแ แแ แแก แแแแฆแแแแแแก แแแแแก. แฉแแแแก แแแแแแแชแแแจแ แฉแแแ แแแงแแแแแ แแแแแแแแฃแ แจแแแฆแฃแแแแแก แแแแแแแก แแแแกแแฎแแ แชแแแแแแแแ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แแแแคแแแฅแขแแแแก แแแแแแ แแแแแ, แ แแแแกแแช แแแแฎแแแ แแแแแแ แแ แแแ แแฃแแแ แแฃแจแแแแแ แแแคแแแ แแแแแแ แแแฃแ แแแฏแแขแแก แแแแแฅแขแแแแแ. แแกแแแ แจแแแฆแฃแแแแแแก แแแแแงแแแแแ แกแแจแฃแแแแแแก แแแแซแแแแก แแแแแแแ แขแแแแ แแแแแชแฎแแแแก แแแแ.
แแแแแแแ, แจแแแฆแฃแแแแก แขแแแแแแแแ แแแแแแแแแแ แ, Postgres-แก แแฅแแก แกแแแ แแแแ แแแแ แจแแแแฌแแแแแกแแแแก: แแฌแแ แแแแก, แขแ แแแแแฅแชแแแก แแ แแแแแฎแแขแแแก แแแแแแแ.
แฌแงแแ แ:
CHECK แแ NOT NULL แงแแแแแแแแก แแแฌแแแแแ แแฌแแ แแแแก แแแแแแ; แกแฎแแ แจแแแฆแฃแแแแแแกแแแแก, แ แแแแ แช แชแฎแ แแแแแแ แฉแแแก, แแ แกแแแแแก แกแฎแแแแแกแฎแแ แแแ แแแแขแแแ. แจแแแแซแแแแ แแแขแ แฌแแแแแแฎแแ
แแแแแแ แ แแ แจแแแแฏแแแแ, แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแ แ แแ แกแแขแฃแแชแแแแจแ แแซแแแแ แฃแคแ แ แฌแแกแแแแแฎ แแแแก แแ แแแแแแ แแ แซแแแแแแแก. แแฃแแชแ, แแฅแแแ แฃแแแ แแแแแแฎแแแแ แแก แแแแแ แแแแก แแ แแชแแกแแก แแแ แแฃแแแแแ, แ แแแแแ แจแแชแแแแแก แแแแแแแแก แแแแแแขแ แแ แแแแก แจแแกแแฎแแ แแแชแแแแแก แแแแแแขแ แแ แแฃแแแ แแ แแก แแแแแงแแคแแแ. แแแแแ แแ แแ แจแแกแแซแแ แแ แแแแแแ แแก แแ แแก, แ แแ แแแแ แแแก แงแแแแแแแแก แแ แจแแฃแซแแแ แแแขแแแแแฃแ แ แแแแแแก แแแแแ, แแฃ แแแแฎแแแแ แแแแชแแแก แแแแแแแแแแฃแ แจแแแฆแฃแแแแก.
pg_repack-แแก แแแฃแแฏแแแแกแแแ
แฉแแแ แแแแแแฎแแแแ แ แ แแ แแก แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแ, แแแแ แแ แ แแแแ แฃแแแแจแแ แแแแ แแกแแแ แฉแแแแก แแ แแแแแแแก? แแแแแฎแกแแแแ แแแ แ แแแฆแแแฃแแ แจแแชแแแแ:
$ ./pg_repack -t tablename -o id
INFO: repacking table "tablename"
ERROR: query failed:
ERROR: duplicate key value violates unique constraint "index_16508"
DETAIL: Key (id, index)=(100500, 42) already exists.
แแก แฎแแแแ แแแจแแ, แ แแแแกแแช แแแแแชแแแแแ แแแแแ แแแแ แแฃแ แแแแแก แชแฎแ แแแแแแ แแฎแแ แชแฎแ แแแจแ. แแก แฃแชแแแฃแ แแ แแแแแแงแฃแ แแแ, แ แแแแแ... แแฃแ แแแแแก แชแฎแ แแแแก แแแแแชแแแแแ แฉแแแแแแแแ แฌแงแแ แแก แชแฎแ แแแแก แแแแแชแแแแแแแ แแ แแแ. แแฃ แแกแแแ แแแแแงแแคแแแแแแ แแแแแแแแ แแแแ แชแฎแ แแแแก แจแแแฆแฃแแแแแก, แ แแแแ แจแแแซแแแแ แแแแ แฆแแแแ แแแแแ แจแแแฆแฃแแแแแ แแฎแแแจแ?
แ แแแแ แช แแ แแแแแ, แแ แแแแแแแก แกแแคแฃแซแแแแ แแแแแแแ แแแแก pg_repack-แแก แฌแแแ แกแแคแแฎแฃแ แจแ, แ แแแแแแช แฅแแแแก แแฎแแแแ แแแแแฅแกแแแก, แแแแ แแ แแ แ แจแแแฆแฃแแแแแก: แซแแแ แชแฎแ แแแก แฐแฅแแแแ แฃแแแแแแฃแ แ แจแแแฆแฃแแแ, แฎแแแ แแฎแแแแ แจแแฅแแแ แฃแแแแแแฃแ แ แแแแแฅแกแ.
แแฅ แแแแจแแแแแแแแแแ แแฆแแแแจแแแก, แ แแ แแฃ แจแแแฆแฃแแแ แแแ แแแแฃแ แแ แแ แแ แแ แแก แแแแแแแแฃแแ, แแแจแแ แแแก แแแชแแแแ แจแแฅแแแแแ แฃแแแแแแฃแ แ แแแแแฅแกแ แแ แจแแแฆแฃแแแแก แแฅแแแแแแแแขแฃแ แแ, แ แแแแแ Postgres-แจแ แฃแแแแแแฃแ แ แจแแแฆแฃแแแแแ แแแแฎแแ แชแแแแแแฃแแแ แฃแแแแแแฃแ แ แแแแแฅแกแแก แจแแฅแแแแ. แแแแ แแ แแแแแแแแฃแแ แจแแแฆแฃแแแแก แจแแแแฎแแแแแจแ, แฅแชแแแ แแ แแ แแก แแแแแ, แ แแแแแ แแแแแฅแกแแก แแแแแแแแ แจแแฃแซแแแแแแแ แแ แงแแแแแแแแก แแแฌแแแแแ sql แแ แซแแแแแแก แจแแกแ แฃแแแแแก แแ แแก.
แแแ แแแแ, แแ แแแแแแแก แแ แกแ แแแแแแแ แแแแก แจแแแแฌแแแแแก โแแแงแแแแแแแจแโ: แแแแแแแแ แแแ แชแฎแ แแแจแ แแก แฎแแแแ แฉแแแแแแก แแ แแก, แฎแแแ แแฎแแ แชแฎแ แแแจแ sql แแ แซแแแแแแก แจแแกแ แฃแแแแแก แแ แแก. แแก แแแจแแแแก, แ แแ แฉแแแ แฃแแแ แแแแ แฌแแฃแแแแ, แ แแ แจแแแแฌแแแแแแ แแ แแแ แจแแแแฎแแแแแจแ แแ แแแแแ แแ แจแแกแ แฃแแแแแ: แแ แงแแแแแแแแก แแแแแแแแแแแ, แแ แงแแแแแแแแก แแแฃแงแแแแแแแแ.
แแแจ แ แ แแแแแแ แแแฅแแแแ?
แจแแฅแแแแแ แแแแแแแแฃแแแก แแกแแแแกแ แแแแแฅแกแ
แแแ แแแแ แแแแ แแ แแก แแ แแแ แจแแแแฌแแแแแก แจแแกแ แฃแแแแ แแแฃแงแแแแแแแแ แ แแแแแจแ. แแแแ แจแแแซแแแแ แแแแแแฌแแแแก แ แแแแแแแแ แชแ แฃ แแแแแแแแ แจแแแฆแฃแแแ, แแแแ แแ แแฃ แแแแแแ แชแแขแแ, แแก แแ แฃแแแ แแแแฅแแแแแก แแแแฎแแแ แแแแแแแก แแฃแจแแแแแแ, แ แแแแแ แแกแแแ แแแแคแแแฅแขแแแ แแแแแแแก แแแ แแแแฃแ แ แกแแขแฃแแชแแแ. แแกแแแ แฌแแ แแแแฅแแแแแ, แแแแแแแแแ, แ แแแแกแแช แแ แ แแแแฎแแแ แแแแแ แแฌแงแแแก แแ แแ แแ แแแแแ แแแฏแแขแแก แ แแแแฅแขแแ แแแแก แแ แแแ แแฃแแแ, แฎแแแ แแแแ แ แแแแฎแแแ แแแแแก แแแแแแขแก แแ แแฅแแก แแ แ, แแแแฆแแก แแแคแแ แแแชแแ, แ แแ แแแฏแแขแ แฃแแแ แแแแแแแแแแ แแแ แแแแ แแแแฎแแแ แแแแแก แแแแ แ แแแแฅแขแแ แแแแกแแแแก. แแกแแ แแแแแ แแแแจแ แกแแ แแแ แ แฃแแ แก แแแแแแก แแแแ แ แแแแฎแแแ แแแแแแ, แฎแแแ แแแกแ แแแแแแขแ แฃแแแ แแแ แฃแแแแก แชแแแแแแแแแก แแ แแแแแแแก แแแฏแแขแก. แชแแขแ แแแแแแแแแแแ, แ แแแแกแแช แแแ แแแแ แแแแฎแแแ แแแแแ แแแแกแ แฃแแแแก แ แแแแฅแขแแ แแแแก, แแแแ แ แแแแฆแแแก แแแคแแ แแแชแแแก, แ แแ แแแฏแแขแ แแฆแแ แแ แแก แแแแแแแแแ แแ แจแแซแแแแก แแแแแกแ แแแฅแแแแแแแก แแแแแแ แแแแก.
แแแแก แฃแแ แฃแแแแแกแแงแแคแแ, แ แแ แจแแแแฌแแแแแแ แงแแแแแแแแก แแแแแแแแฃแ แ แแแแแจแแ, แฉแแแ แจแแแฅแแแแแ แแฎแแแ แแแแแฅแกแ, แ แแแแแแช แแกแแแแกแแ แแแแแแแแ แแแแ แแแแแแแแแแฃแแ แจแแแฆแฃแแแแกแ:
CREATE UNIQUE INDEX CONCURRENTLY uk_tablename__immediate ON tablename (id, index);
-- run pg_repack
DROP INDEX CONCURRENTLY uk_tablename__immediate;
แกแแขแแกแขแ แแแ แแแแจแ แฉแแแ แแแแแฆแแ แแฎแแแแ แ แแแแแแแแ แแแกแแแแแแแแ แจแแชแแแแ. แฌแแ แแแขแแแแแ! แฉแแแ แแแแแ แแแแฃแจแแแ pg_repack แฌแแ แแแแแแแ แแ แแแแแฆแแ 5 แจแแชแแแแ แแแ แแแ แแแแกแขแแ แแ แแฃแจแแแแแก แกแแแแจแ. แแก แแแกแแฆแแแ แจแแแแแแ. แแฃแแชแ, แฃแแแ แแแแ แ แแแแกแขแแ แแ แจแแชแแแแแแแก แ แแแแแแแแ แกแแแ แซแแแแแแ แแแแแแ แแ แแ แแแแแแฌแแ pg_repack-แแก แจแแฉแแ แแแ.
แ แแขแแ แแแฎแแ แแก? แจแแชแแแแแก แแแจแแแแแก แแแแแแแแ แแแแแแแแแแฃแแแ แแแแแ, แแฃ แ แแแแแแ แแแแฎแแแ แแแแแ แแฃแจแแแแก แแ แแกแ แแ แแแแแ แแแฏแแขแแแแแ แแ แแแ แแฃแแแ. แ แแแแ แช แฉแแแก, แแ แแแแแแขแจแ แแแชแแแแแแ แแแแแแแ แแแแแฃแ แแแขแฃแแ แชแแแแแแแแแ แแงแ แแแ แแแ แแแแกแขแแ แแ แจแแแแฎแฃแแ แแแแแชแแแแแแ, แแแแ แ แกแฎแแแแแ, แ.แ. แฉแแแ แฃแแ แแแแ "แแแแแแแแ แแแ".
แแแแแ แแ แแแแแแ แแแ. แแ แแแแแแขแจแ, แฉแแแ แแแแฎแแ แแ แ แกแฎแแ แแแแแกแแแแแ: แแแแแฌแแ แแ แฉแแแแ แแแแแแแชแแแก แแแแ แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแแก แแแแแ แแชแฎแแแก แแแแแแ, แแ โแแกแฌแแแแแโ pg_repack แแแแแแ แแฃแจแแแแแก. แฉแแแ แแแแ แฉแแแ แแแแ แ.
แจแแชแแแแแ แแแแแฅแกแแแ แแฎแแ แชแฎแ แแแจแ แแแแแแแแ แแแแ แชแฎแ แแแแก แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแแ
แแแแแกแแแฏแแแก แแแแแแ แแจแแแ แ แแงแ - แแฃ แแแแแแแแ แแแ แชแฎแ แแแก แแฅแแก แแแแแแแแฃแแ แจแแแฆแฃแแแ, แแแจแแ แแฎแแแกแแแแก แแฅแแแ แฃแแแ แจแแฅแแแแ แแกแแแ แจแแแฆแฃแแแ แแ แแ แ แแแแแฅแกแ.
แฉแแแแ แชแแแแแแแแแแก แจแแกแแแแฌแแแแแแ, แฉแแแ แแแแฌแแ แแ แแแ แขแแแ แขแแกแขแ:
- แชแฎแ แแแ แแแแแแแแแแฃแแ แจแแแฆแฃแแแแ แแ แแ แแ แฉแแแแฌแแ แแ;
- แแแแแชแแแแ แฉแแกแแ แแแ แงแฃแแจแ, แ แแแแแแช แแฌแแแแแฆแแแแแแแ แแ แกแแแฃแ แฉแแแแฌแแ แก;
- แแแแแแฎแแแ - แแแแแชแแแแแ แแฆแแ แแฌแแแแแฆแแแแแแแ;
- แจแแแกแ แฃแแแ แชแแแแแแแแแ.
create table test_table
(
id serial,
val int,
constraint uk_test_table__val unique (val) deferrable initially deferred
);
INSERT INTO test_table (val) VALUES (0);
FOR i IN 1..10000 LOOP
BEGIN
INSERT INTO test_table VALUES (0) RETURNING id INTO v_id;
UPDATE test_table set val = i where id = v_id;
COMMIT;
END;
END LOOP;
pg_repack-แแก แแ แแแแแแแฃแ แ แแแ แกแแ แงแแแแแแแแก แแแแ แแฃแแแ แแจแแแแแแ แแแ แแแ แฉแแแแ แแแ, แจแแชแแแแแ แแแ แกแแ แแฃแจแแแแแ แจแแชแแแแแแแก แแแ แแจแ. แแแแ.
แฉแแแ แแแแแแแแ แ แฌแแ แแแแแแแ แแ แแแแแ แแแฆแแแ แจแแชแแแแแก แแฃแ แแแแแก แชแฎแ แแแแแแ แแแแแชแแแแแแก แแฎแแแแ แแแแแ แแแแก แแแแแ แคแแแแจแ:
$ ./pg_repack -t tablename -o id
INFO: repacking table "tablename"
ERROR: query failed:
ERROR: duplicate key value violates unique constraint "index_16508"
DETAIL: Key (id, index)=(100500, 42) already exists.
แแแแกแแแฃแ แ แกแแขแฃแแชแแ: แงแแแแแคแแ แ แแฃแจแแแแก แกแแขแแกแขแ แแแ แแแแจแ, แแแแ แแ แแ แ แฌแแ แแแแแแจแ?!
APPLY_COUNT แแ แแ แ แฏแแฃแคแแก แจแแแ แแแแ
แฉแแแ แแแแแฌแงแแ แแแแแก แแแแแแแ แกแแขแงแแแกแแขแงแแแ แกแขแ แแฅแแ-แกแขแ แแฅแแแจแ แแ แแฆแแแแแฉแแแแ แแแแจแแแแแแแแแ แฌแแ แขแแแ: แแแแแชแแแแแ แแแแแแแก แแฃแ แแแแแก แชแฎแ แแแแแแ แแฎแแแแ แฏแแฃแคแฃแ แแ, APPLY_COUNT แแฃแแแแแ แแแฃแแแแแแก แฏแแฃแคแแก แแแแแแ:
for (;;)
{
num = apply_log(connection, table, APPLY_COUNT);
if (num > MIN_TUPLES_BEFORE_SWITCH)
continue; /* there might be still some tuples, repeat. */
...
}
แแ แแแแแแ แแก แแ แแก, แ แแ แแแแแแแแ แแแแ แขแ แแแแแฅแชแแแก แแแแแชแแแแแ, แ แแแแแแจแแช แ แแแแแแแแ แแแแ แแชแแแ แจแแแซแแแแ แแแขแแแชแแฃแ แแ แแแแ แฆแแแแก แจแแแฆแฃแแแ, แแแแแชแแแแกแแก, แจแแแซแแแแ แแแกแ แฃแแแแก แแ แ แฏแแฃแคแแก แจแแแ แแแแแแ - แแ แซแแแแแแแแก แแแฎแแแแ แ แฉแแแแแแแ แแฅแแแแ แแแ แแแ แแแ แขแแแจแ, แฎแแแ แแแแ แ แแแฎแแแแ แ. แแแแ แแจแ. แแ แแ, แแฅแแแแ แแฆแแแแแแ แแแแแแแแแแ แ: แแฃ แแฃแแแแแ แแแ แแแ แแแ แขแแแจแ แแ แแคแแ แก แแ แฆแแแแแ, แแแจแแ แงแแแแแคแแ แ แแแ แแแแแ, แแแแ แแ แแฃ แแแแก แแแแแแแแ, แฉแแแแแ แจแแชแแแแ.
APPLY_COUNT แฃแแ แแก 1000 แฉแแแแฌแแ แก, แ แแช แแแแแแ แขแแแก, แแฃ แ แแขแแ แแงแ แฉแแแแ แขแแกแขแแแ แฌแแ แแแขแแแฃแแ - แแกแแแ แแ แแแแชแแแแแแ โแกแแแงแแ แ แจแแแ แแแแแกโ แจแแแแฎแแแแแก. แฉแแแ แแแแแแแงแแแแ แแ แ แแ แซแแแแแ - แฉแแกแแ แแ แแแแแฎแแแแ, แแกแ แ แแ, แแ แ แแ แซแแแแแแก แแฃแกแขแแ 500 แขแ แแแแแฅแชแแ แงแแแแแแแแก แแแแแแกแแแฃแแ แแงแ แแแ แขแแแจแ แแ แแ แแแแแ แ แแ แแแแแแ แแ แแแฅแแแแ. แแแแ แ แแแแแฎแแแแแก แแแแแขแแแแก แจแแแแแ, แฉแแแแแ แ แแแแฅแขแแ แแแแ แจแแฌแงแแแขแ แแฃแจแแแแ:
FOR i IN 1..10000 LOOP
BEGIN
INSERT INTO test_table VALUES (1) RETURNING id INTO v_id;
UPDATE test_table set val = i where id = v_id;
UPDATE test_table set val = i where id = v_id; -- one more update
COMMIT;
END;
END LOOP;
แแกแ แ แแ, แจแแแแแแ แแแแชแแแแ แแแแ แฌแแฃแแแแ, แ แแ แแแแแชแแแแแ แแแแแแแแ แแแแ แชแฎแ แแแแแแ, แ แแแแแแช แจแแแชแแแแ แแ แ แขแ แแแแแฅแชแแแจแ, แกแ แฃแแแแแ แแฎแแ แชแฎแ แแแจแ แแกแแแ แแ แแ แขแ แแแแแฅแชแแแก แคแแ แแแแแจแ.
แฃแแ แแก แแฅแแ แแแแ แแแแ
แแ แแกแแ แแแฅแแแแ แแ แ แแแแแกแแแแแ. แแแ แแแแ: แแแแแ, แแแแแแแแ แแแแแขแแแแ แแแงแแคแ แแแ แขแแแแแ แแ แแแแแแแขแแแแ แแแแแชแแแแแ แแ แ แขแ แแแแแฅแชแแแจแ. แแ แแแแแฌแงแแแขแแก แฃแแแ แแขแแกแแแ แแงแ แแแกแ แกแแแแ แขแแแ - แแแแแก แกแแญแแ แ แชแแแแแแแแแ แแแแแแแแฃแ แ แแงแ (แกแฎแแแแ แจแแ แแก, แซแแแ แแแ แกแแแแจแ pg_reorg แแฃแกแขแแ แแกแ แแฃแจแแแแแ). แแแแ แแ แแ แแก แแ แแแแแแ - แฉแแแ แแฅแแแแ แแ แซแแแแแแแแ แขแ แแแแแฅแชแแแก แแ แแก, แ แแแแ แช แฃแแแ แแฆแแแแจแแแ, แกแแคแ แแฎแแก แฃแฅแแแแก แแฎแแแ แแคแแแฅแแแแก แแแฉแแแแก.
แแแแ แ แแแแแกแแแแแ แฃแคแ แ แ แแฃแแ, แแแแ แแ แแแแแ แฃแคแ แ แกแฌแแ แแ: แจแแฅแแแแแ แกแแแขแ แแฃแ แแแแแก แชแฎแ แแแจแ แแ แขแ แแแแแฅแชแแแก แแแแแขแแคแแแแขแแ แแ, แ แแแแแแแช แแแแแแขแ แแแแแชแแแแแ แชแฎแ แแแจแ. แจแแแแแ, แ แแแแกแแช แแแแแแแ แแแ แแแแแชแแแแแก, แจแแแแแซแแแ แแแแแฏแแฃแคแแ แแกแแแ แแ แแขแ แแแฃแขแแ แแ แแแแ แฌแแฃแแแแ, แ แแ แแแแแแจแแ แแแฃแแ แชแแแแแแแแแ แแ แแแ แแแแแแชแแแ. แแแ แขแแ แฉแแแแงแแแแแแแแ แ แแแแแแแแ แขแ แแแแแฅแชแแแกแแแ (แแ แแ แแ แแแแ) แแ แแแกแ แแแแ แแฅแแแแ แแแแแแแแแแฃแแ แแแแก แแแฎแแแแแ, แแฃ แ แแแแแแ แแแแแชแแแ แจแแแชแแแแ แแ แขแ แแแแแฅแชแแแแจแ. แแแแจแแแแแแแแแแ แแฆแแแแจแแแก, แ แแ แแแแก แแแแ, แ แแ แกแฎแแแแแกแฎแแ แขแ แแแแแฅแชแแแก แแแแแชแแแแแ แจแแแแฎแแแแแแ แแแแแแแแแแ แแแแ แจแแแแก แแฃแ แแแแแก แชแฎแ แแแจแ, แจแแฃแซแแแแแแ แแฅแแแแ แแแแ แแแแแแแแแแ แแแแ แฌแแแแแฎแแ, แ แแแแ แช แแก แแแ แ แแงแ. seqscan แแแแแแฃแแ แแแแฎแแแแแกแแแแก tx_id แคแแแขแ แแ แซแแแแแ แซแแแ แแ, แกแแญแแ แแ แแแแแฅแกแ, แแแแ แแ แแก แแกแแแ แจแแแแแแแแก แแแแแแก แแแกแ แแแแแฎแแแแแก แแแแแแขแ แฎแแ แฏแแแแก แแแแ. แแแแแแแ, แ แแแแ แช แงแแแแแแแแก, แ แแฆแแชแแก แแแฆแแแ แแญแแ แแแแแ.
แแกแ แ แแ, แฉแแแ แแแแแแฌแงแแแขแแ แแแแแฌแงแแ แแแ แแแแ แแแ แแแแขแแ, แ แแแแแ แแก แฃแคแ แ แแแ แขแแแแ. แแแ แแแ แ แแแจแ, แกแแญแแ แ แแงแ แแแแก แแแแแแ, แแฅแแแแแแ แแฃ แแ แ แฎแแแแ แซแแแแ แแแ แแแแแ แ แแแแฃแ แ แแ แแแแแแ. แแแแแแแแ แแแแแชแแแแ แซแแ แแแแแ แแแแแชแแแ แซแแแแ แชแฎแ แแแแแแ แแฎแแแแ แแกแแแ แฎแแแแ แแ แ แฎแแแแ แซแแแ แขแ แแแแแฅแชแแแจแ, แแแแฎแแ แแแแแแแแแ "แ แแแแแแแ แแแแแ แแแ แแ แขแ แแแแแฅแชแแแก?" แแแ แแแแ แขแ แแแแแฅแชแแแก แฎแแแแ แซแแแแแแ แซแแ แแแแแแ แแแแแแแแแแฃแแแ แแแแแแแก แแแแแแ. แแฎแแแก แฎแแแแ แซแแแแแแ แแแแแแแแแแฃแแแ แแแแแ, แแฃ แ แแแแแแ แชแแแแแแแ แแ แแแแแแ แชแฎแ แแแจแ แแแแแชแแแแ แแแแแชแแแแก แแ แแก, แ.แ. แแแขแแแ แแแแก แแแขแแแกแแแแแแแ. pg_repack แแแจแแแแ แแแฎแแ แแแแแแแแฃแ แ แกแแ แแแกแแก แแแขแแแ แแแแก แแ แแก แแ แชแแแแแแแแแแก แแแชแฃแแแแ แแ แแแ แแแแ แชแแฃแแแ แแชแแ แ แแงแ แชแฎแ แแแแก แแแแแแแแ แแแ แแแแแกแแแ แจแแแแ แแแแ. แฉแแแ แแแแแแฌแงแแแขแแ, แ แแ แจแแแแแซแแแ แฃแแฃแแแแแแแงแแ แแฎแแแ แขแ แแแแแฅแชแแแก แแ แ (แจแแแแ แแแแกแแแแก, แกแแจแฃแแแแ 1 แกแแแแ แแ 2-3 แฌแฃแแแ).
แแฅแกแแแ แแแแแขแแแ แแแแแแแแ แแงแ. แแแจแแแแ แฌแแ แแแแแแแแช. แกแแชแฎแแแแกแแแแก, แแฅ แแ แแก แกแฃแ แแแ แแ แ-แแ แแ แแแแแชแแแแ แแแแแก แแแแแ แแแจแแแแแก แจแแแแแ:
แแแแแแแแ แฉแแแ แกแ แฃแแแแ แแแแงแแคแแแ แแแงแแแแ แแ แแแแแฌแงแแแขแแ, แฉแแแ แแ แแชแแแแแแแแ แแแแ แแก แแแแฎแแ แชแแแแแแแก, แแแแ แแ แแแแแแฎแแแแแ แแแคแแ แแแแแแก แแแแแแแแแ แแแแแ แแแก แแแแฎแแแแแก แจแแกแแซแแแแแแแแก. แฉแแแแ แแแแแแแแแแแ แแแแแฎแแแแ, แกแแแฌแฃแฎแแ แแ, แฏแแ แแ แแ แแก แแแแ แแแแแกแแฅแแแงแแแแแแ, แ แแแแแ แฉแแแ แแ แแแแแแ แแฎแแแแ แฃแแแแแแฃแ แ แแแแแแแแแแฃแแ แจแแแฆแฃแแแแแแ แแแแแแฌแงแแแขแแ, แฎแแแ แกแ แฃแแคแแกแแแแแ แแแขแฉแแกแแแแก แแฃแชแแแแแแแแ แกแฎแแ แขแแแแก แแฎแแ แแแญแแ แ. แฉแแแ แแแแแแแแแแแ, แ แแ แแแแก แแแแแแแแจแ แจแแแซแแแแ.
แแแแแ แแแแแฉแแแแแแ แจแแแแแฎแแ, แ แแขแแ แฉแแแแ แแแ แแ แแแแแแจแ pg_repack-แแก แแแแแคแแแแชแแแ แแ แแ แแแแแแแงแแแแ, แแแแแแแแแ, แแแกแ แแแแแแแแแ? แ แแฆแแช แแแแแแขแจแ แฉแแแแช แแแคแแฅแ แแ แแแแแ, แแแแ แแ แแแกแ แแแ แ แแแแแงแแแแแแก แแแแแขแแฃแ แแ แแแแแชแแแแแแแ, แชแฎแ แแแแแแ แแแแแแแแฃแแ แจแแแฆแฃแแแแแแก แแแ แแจแ, แแแแแชแ แแแขแแแแชแแ, แจแแแแแกแฌแแแแ แแ แแแแแแแก แแ แกแ แแ แแแแแแแแกแฌแแ แแแแแ. แแแ แแ แแแแกแ, แกแฎแแ แแแแแฌแงแแแขแแแแแแแแก แแแแแงแแแแแแก แแกแแแ แกแญแแ แแแแ แแ แ แขแแกแขแแแแก แฉแแกแแขแแ แแแแแ, แแแแขแแ แแแแแแฌแงแแแขแแ, แ แแ แฏแแ แจแแแแชแแแแ แแ แแแแแแแก แแแแแกแฌแแ แแแ แแแกแจแ แแ แแฃ แแแแฎแแแแแแแแ, แ แแ แแแแก แแแ แแแแแแแแแแแแ แแแแแแ แฃแ แแแแแจแ, แแแจแแ แแแแแฌแงแแแแแ แแแแแแแแแแก แงแฃแ แแแแก. .
แแแกแแแแแแ
แ แ แจแแแแแซแแแ แแแ แฉแแแ แกแแแฃแแแ แ แแแแแชแแแแแแแแแ แแแแแแแแแแ แ:
- แแแแแงแฃแ แ แแแแแแแ แแฅแแแแก แจแแจแฃแแแแแก. แแแแแขแแ แแแแแก แแแแแชแแแแแแ แแแงแ แแแแแแ, แจแแแแซแแแแ แแแแแแ, แ แแแแแแแ แแแ แแแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ แแแขแแแแแฃแฃแแ.
- แแแแ แแแฃแแแ แแ AUTOVACUUM, แ แแแ แจแแแแแ แฉแฃแแแ แจแแจแฃแแแแ แแแกแแฆแแ แแแแแแ.
- แแฃ แจแแแแ แแแแแ แฏแแ แแแแแ แแแ แแแแ แแ แแฅแแแ แแแ แแแแแแแฎแแแ แแแก แแแฎแแแ แแแฃแแ แฎแแแกแแฌแงแแแแแก แแแแแงแแแแแแ, แแ แจแแแแจแแแแแ แแแแแแงแแแแ แแแ แ แแแคแแ แแแแแแแ. แแแแแแ แแ แงแแแแแคแแ แ แแแ แแแ แแแแแกแชแแแ.
- แแ แจแแแแจแแแแแ แแแ แ แแแแแฌแงแแแขแแแแแแแแก แจแแชแแแ แแฅแแแแก แกแแญแแ แแแแแแแ - แแแแฏแแ แแก แจแแแซแแแแ แแงแแก แฃแคแ แ แแคแแฅแขแฃแ แ แแ แฃแคแ แ แแแแแแแช แแ, แแแแ แ แกแแแฃแแแ แ แแแแแก แจแแชแแแ.
แฌแงแแ แ: www.habr.com