เบเบปเบเบเบฐเบเบปเบเบเบญเบ bloat เปเบเบเบฒเบเบฐเบฅเบฒเบเปเบฅเบฐเบเบฑเบเบชเบฐเบเบตเปเบกเปเบเปเบเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบฅเบฐเบเบฐเบเบธเบเบฑเบเบเปเปเบเบฝเบเปเบเปเบขเบนเปเปเบ Postgres. เบกเบตเบงเบดเบเบตเบเบตเปเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบกเบฑเบเบญเบญเบเบเบฒเบเบเปเบญเบ, เปเบเบฑเปเบ VACUUM FULL เบซเบผเบท CLUSTER, เปเบเปเบเบงเบเบกเบฑเบเบฅเบฑเบญเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบถเปเบเบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ.
เบเบปเบเบเบงเบฒเบกเบเบฐเบเบฐเบเบญเบเบเปเบงเบเบเบดเบเบชเบฐเบเบตเปเบฅเบฑเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบ bloat เปเบเบตเบเบเบถเปเบ, เบงเบดเบเบตเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเปเบชเบนเปเบเบฑเบเบกเบฑเบ, เบเปเบฝเบงเบเบฑเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒเปเบฅเบฐเบเบฑเบเบซเบฒเบเบตเปเบเบงเบเปเบเบปเบฒเบเปเบฒเปเบญเบปเบฒเบเบฒเบเบเบฐเบซเบเบฒเบ pg_repack.
เบเบปเบเบเบงเบฒเบกเบเบตเปเบเบทเบเบเบฝเบเปเบเบเบญเบตเบเปเบชเป
เปเบเบฑเบเบซเบเบฑเบเบเบดเปเบเปเบเบตเบเบเบฒเบเบญเบฑเบเปเบชเบ?
Postgres เปเบกเปเบเบญเบตเบเปเบชเปเปเบเบเบเปเบฒเบฅเบญเบเบซเบผเบฒเบเบฎเบธเปเบ (
เปเบเปเบเบญเบ, เบชเบฐเบเบฑเบเบเบฑเบเบซเบกเบปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบงเป. Postgres เปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบซเบเปเบฒเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเบเบซเบเปเบฒเปเบฅเบฐเบซเบเปเบฒเปเบกเปเบเบเปเบฒเบเบงเบเบเปเบฒเปเบชเบธเบเบเบตเปเบเบญเบเบเปเปเบกเบนเบเบเบตเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเบเบฒเบเปเบเปเบเบซเบผเบทเบเบฝเบ. เบเปเปเบซเปเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเปเบญเบเปเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบงเปเบฒเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบเปเปเบเบงเปเบ.
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเปเบกเบเบฑเบเบเบถเบเบเปเบฒเบเบงเบเบซเบเบถเปเบ. เบเปเปเบกเบนเบเปเบซเบกเปเปเบเปเบเบฒเบเบปเบเบขเบนเปเปเบเบซเบเปเบฒเบเปเบฒเบญเบดเบเบเบญเบเปเบเบฅเปเบเบตเปเบเบฒเบเบฐเบฅเบฒเบเบเบทเบเปเบเบฑเบเปเบงเป. เปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบชเบฐเบเบฑเบเบชเบปเบเบเบญเบเปเบเบงเบเบตเปเบกเบตเปเบซเปเบเบฑเบเบเบธเบฅเบฐเบเปเบฒเบญเบทเปเบเปเบซเบผเบฑเบเบเบฒเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ (เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒเบฅเบฐเบเบฑเบเบเบฒเบเปเบเบเบเปเบฝเบงเปเบกเปเบ Read Committed).
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบธเบเบซเบเบถเปเบเปเบเบฅเบฒเบเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเบถเปเบเปเบฎเบฑเบเปเบซเปเบชเบฐเบเบฑเบเปเบเบปเปเบฒเบเปเปเบเปเบฝเบงเบเปเบญเบ.
เบเบฑเปเบเบเบญเบเปเบเบเบเบฑเปเบเบเบญเบ, เบเบฒเบเบเบฑเบเบเบธเบเปเบฅเบฐเบเบฒเบเบฅเบถเบเบชเบฐเบเบฑเบเปเบเบง, เบเบงเบเปเบฎเบปเบฒเบชเบดเปเบเบชเบธเบเบฅเบปเบเบเปเบงเบเบซเบเปเบฒเบเบตเปเบกเบตเบเบฐเบกเบฒเบเปเบเบดเปเบเบซเบเบถเปเบเบเบญเบเบเปเปเบกเบนเบเปเบกเปเบ "เบเบตเปเปเบซเบเบทเปเบญ". เบเปเปโเบกเบนเบโเบเบตเปโเปเบกเปเบโเบเปเปโเบชเบฒโเบกเบฒเบโเปเบเบดเปเบโเปเบซเบฑเบโเบเบฒเบโเปเบฎเบฑเบโเบเบธโเบฅเบฐโเบเปเบฒโเปเบโเบซเบเบถเปเบโ.
Postgres เบกเบตเบเบปเบเปเบ
เบเบฑเปเบเบเบฑเปเบเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบเบเบฒเบเปเบงเบฅเบฒเบเบฒเบเบฐเบฅเบฒเบเบเบฐเบเบฐเบเบญเบเบเปเบงเบเบชเบตเปเบซเบเปเบฒ, เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเปเบเบดเปเบเบซเบเบถเปเบเบเบญเบเบกเบฑเบเบเบฐเบกเบตเบเปเปเบกเบนเบเบชเบปเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบกเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบฐเบฅเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบญเปเบฒเบเบเปเปเบกเบนเบเบซเบผเบฒเบเบเปเบงเบฒเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ.
เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบญเบเบเบตเป VACUUM เบเบฐเบฅเบถเบเบเบธเบเบฅเบธเปเบเปเบเบงเบเบตเปเบเปเปเบเปเบฝเบงเบเปเบญเบเบญเบญเบ, เบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฐเบเปเปเบเบตเบเบถเปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบกเบตเบเบทเปเบเบเบตเปเบซเบงเปเบฒเบเปเบเบซเบเปเบฒเปเบงเบฑเบเบเปเบฒเบเปเบซเบผเบทเปเบกเปเบเบฐเบเบฑเปเบเบซเบเปเบฒเบเบฑเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเปเบเบงเปเบซเบกเป, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบญเปเบฒเบเบเปเปเบกเบนเบเบซเบผเบฒเบเบเบงเปเบฒเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ.
เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบเปเบฒเบซเบเปเบฒเปเบเบปเปเบฒเบซเบกเบปเบ (เบซเบเปเบฒเบเบตเบชเบญเบเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ) เปเบกเปเบเบขเบนเปเปเบเบเบญเบเบเปเบฒเบเบเบญเบเปเบเบฅเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ VACUUM เบเบฐเบชเบฒเบกเบฒเบเบเบฑเบเบกเบฑเบเปเบเป. เปเบเปเบเบฝเบงเบเบตเปเบเบฒเบเบขเบนเปเปเบเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเปเปเบกเบตเบซเบเบฑเบเปเบฎเบฑเบเบเบฑเบเบเบฒเบ.
เปเบกเบทเปเบญเบเปเบฒเบเบงเบเบซเบเปเบฒเปเบเบปเปเบฒเบซเบผเบท sparse เบเบฑเปเบเบเปเบฒเบงเบเบฒเบเปเบเบฑเบเบเบฐเบซเบเบฒเบเปเบซเบเป, เปเบเบดเปเบเปเบญเบตเปเบเบงเปเบฒ bloat, เบกเบฑเบเปเบฅเบตเปเบกเบชเบปเปเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบ.
เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบเบเบตเปเปเบกเปเบเบเบปเบเปเบเบเบญเบเบเบฒเบเบเบฐเบเบปเบเบเบปเบงเบเบญเบ bloat เปเบเบเบฒเบเบฐเบฅเบฒเบ. เปเบเบเบฑเบเบเบฐเบเบตเบเบตเปเปเบเบตเบเบเบถเปเบเปเบเบซเบผเบฒเบเบงเบดเบเบตเบเบฝเบงเบเบฑเบ.
เบเปเบญเบเบกเบตเบญเบฒเบเบฒเบเบเปเบญเบเบญเบทเบเบเป?
เบกเบตเบซเบผเบฒเบเบงเบดเบเบตเปเบเบเบฒเบเบเปเบฒเบเบปเบเบงเปเบฒเบเปเบฒเบเบกเบต bloat. เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบชเบฐเบเบดเบเบด Postgres เบเบฒเบเปเบ, เปเบเบดเปเบเบเบฐเบเบญเบเบเปเบงเบเบเปเปเบกเบนเบเบเบฐเบกเบฒเบเบเปเบฝเบงเบเบฑเบเบเปเบฒเบเบงเบเปเบเบงเปเบเบเบฒเบเบฐเบฅเบฒเบ, เบเปเบฒเบเบงเบเปเบเบง "เบชเบปเบ" เปเบฅเบฐเบญเบทเปเบเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเบปเบงเปเบเบเบตเปเบเบฝเบกเบเปเบญเบกเบซเบผเบฒเบเปเบเบญเบดเบเปเบเบตเปเบเบฑเบ. เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเปเบเบฑเบเบเบทเปเบเบเบฒเบ
เบญเบตเบเบงเบดเบเบตเบซเบเบถเปเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฐเบซเบเบฒเบ
เบเบงเบเปเบฎเบปเบฒเบเบดเบเบฒเบฅเบฐเบเบฒเบกเบนเบเบเปเบฒ bloat เบเบฐเบซเบเบฒเบเบเปเบญเบ, เปเบเบดเบ 20%, เบเบญเบกเบฎเบฑเบเปเบเป. เบกเบฑเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบฑเบ analogue เบเบญเบ fillfactor เบชเปเบฒเบฅเบฑเบ
เบงเบดเบเบตเบเบฒเบเบเปเปเบชเบนเปเบเบฑเบ bloat
Postgres เบกเบตเบซเบผเบฒเบเบงเบดเบเบตเบเบตเปเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบ bloat เบญเบญเบเบเบฒเบเบเปเบญเบ, เปเบเปเบเบงเบเบกเบฑเบเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบปเบ.
เบเบฑเปเบเบเปเบฒ AUTOVACUUM เปเบเบทเปเบญเบเปเปเปเบซเปเปเบเบตเบเบเบฒเบเบญเบฑเบเปเบชเบ. เบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบตเปเบเบฑเบเปเบเบ, เปเบเบทเปเบญเบฎเบฑเบเบชเบฒเบกเบฑเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบเบตเปเบเบญเบกเบฎเบฑเบเปเบเป. เบเบตเปเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบ "เบเบฑเบเบเบฑเบ", เปเบเปเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบกเบฑเบเบเปเปเปเบกเปเบเปเบฅเบทเปเบญเบเบเปเบฒเบเบเบตเปเบเบฐเบเบฑเบเบฅเบธเปเบเป. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบกเบตเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบขเปเบฒเบเบซเปเบฒเบงเบซเบฑเบเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบเบปเบเบเบฐเบเบดเบเบญเบเบฅเบฐเบเบปเบเบเปเปเบกเบนเบ, เบซเบผเบทเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเบเปเปเบกเบนเบเปเบกเปเบเปเบเบตเบเบเบถเปเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบฃเปเบเบฅเปเบเบฒเบเปเบซเบผเบเบเบญเบเบเปเบฒเบเบญเบฒเบเบเบฐเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบฅเบทเปเบญเบเป เปเบฅเบฐเปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบเปเบเปเบเปเบเปเบฅเบฐเบเบฒเบเบฐเบฅเบฒเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเปเบฅเบฑเบเบเปเบญเบเบเปเปเบซเบเปเบฒเปเบฅเบฐเบเบฑเบ AUTOVACUUM เบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเปเบเปเบฅเบฐเบเบฒเบเบฐเบฅเบฒเบ. เปเบเปเปเบเปเบเบญเบเบเบตเปเบเปเปเปเบกเปเบเปเบฅเบทเปเบญเบเบเปเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบ.
เปเบซเบเบเบปเบเบเบปเปเบงเปเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเบเบตเป AUTOVACUUM เบเปเปเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบฐเบฅเบฒเบเปเบเปเปเบกเปเบเบเปเบญเบเบงเปเบฒเบกเบตเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบเบฒเบงเบเบฒเบเบเบตเปเบเปเบญเบเบเบฑเบเบเปเปเปเบซเปเบกเบฑเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเปเปเบกเบนเบเบเบตเปเบกเบตเบขเบนเปเปเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเปเบฒเปเบเบฐเบเปเบฒเปเบเบเบตเปเบเบตเปเปเบกเปเบเบเบฑเบเบเบฐเปเบเปเบ - เบเปเบฒเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒ "dangling" เปเบฅเบฐเบซเบผเบธเบเบเปเบญเบเปเบงเบฅเบฒเบเบญเบเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง. เปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฒเบเปเบซเบผเบเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเปเบฒเบเปเบกเปเบเบเบฐเบชเบปเบกเบเบญเบ OLAP เปเบฅเบฐ OLTP, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบญเบกเบเบฑเบเบกเบตเบเบฒเบเบเบฑเบเบเบธเบเปเบฅเบทเปเบญเบเปเปเบฅเบฐเบเบฒเบเบชเบญเบเบเบฒเบกเบชเบฑเปเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเบฅเบเบฐเบเบฒเบง - เบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบชเปเบฒเบเบเบปเบเบฅเบฒเบเบเบฒเบ. เปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบง, เบกเบฑเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบเบตเปเบเบฐเบเบดเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเปเบเบฐเบเบฒเบเบเบฒเบเปเบซเบผเบเปเบเบเบปเปเบงเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเบดเปเบเบเบฐเบเปเบงเบเปเบซเปเบกเบตเบเบฒเบเบเบฑเบเบเบปเบงเบเบญเบเปเบเปเบฅเบฐเบเบปเบเบซเบผเบฒเบเบเบถเปเบ.
เบเบปเบงเบขเปเบฒเบเบญเบตเบเบเบฐเบเบฒเบเบซเบเบถเปเบ - เปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบเบฃเปเบเบฅเปเปเบกเปเบ homogeneous, เปเบเปเบเบฒเบเบเปเปเบกเบนเบเปเบกเปเบเบขเบนเปเบเบฒเบเปเบเปเบเบฒเบเปเบซเบผเบเบชเบนเบเบซเบผเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบดเบเปเบกเปเบเบงเปเบฒ AUTOVACUUM เบเบตเปเบฎเบธเบเบฎเบฒเบเบเบตเปเบชเบธเบเบญเบฒเบเบเบฐเบเปเปเบฎเบฑเบเบกเบทเบเบฑเบ, เปเบฅเบฐ bloat เบเบฐเปเบเบตเบเบเบถเปเบ. เบเบฒเบโเบเบฑเบโเบเบฐโเบซเบเบฒเบ (เบเบฑเปเบโเบซเบผเบทโเปเบเบงโเบเบญเบโ) เปเบเบฑเบโเบเบฒเบโเปเบเปโเปเบโเบเบฝเบโเปเบเปโ.
เบเบฐเปเบฎเบฑเบเปเบเบงเปเบเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบเปเบฒเบเปเบเปเบชเปเบฒเบเบเบฑเปเบ AUTOVACUUM, เปเบเป bloat เบเบฑเบเบชเบทเบเบเปเปเบเบฐเบซเบเบฒเบเบเบปเบง.
เบเบตเบกเบเบฒเบ เบชเบนเบเบเบฒเบเบฒเบเปเบเบฑเบก เบเปเปเบชเปเบฒเบเปเบเบทเปเบญเปเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเปเบฅเบฐเบเบฑเบเบเบฐเบเบตเปเบฅเบฐเบเปเบญเบเปเบซเปเบเปเปเบกเบนเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบขเบนเปเปเบเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเบเบฑเปเบ. เปเบเบทเปเบญเบฅเบปเบเบฅเปเบฒเบ bloat, เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ, เปเบเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบฅเบฑเบญเบเบชเบฐเปเบเบฒเบฐเบขเบนเปเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบทเบเบเบฑเบ (AccessExclusiveLock), เปเบเบดเปเบเบเบฐเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบญเบเบเบฒเบกเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเป, เปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบฅเบทเบญเบ. เบเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเบขเบธเบเปเบเบปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบเบซเบผเบทเบเบฒเบเบชเปเบงเบเบเบญเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบงเบฅเบฒ (เบเบฒเบเบชเบดเบเบเบฒเบเบตเปเบเบดเบเบซเบผเบฒเบเบเบปเปเบงเปเบกเบเปเบเบเบญเบตเบเบเบฒเบกเบเบฐเบซเบเบฒเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบเปเบฅเบฐเบฎเบฒเบเปเบงเบเบญเบเบเปเบฒเบ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบกเปเบเบเบตเบเบตเปเบชเบธเบ. เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเปเปเบกเบตเปเบงเบฅเบฒเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ VACUUM FULL เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฒเบฅเบธเบเบฎเบฑเบเบชเบฒเบเบตเปเบเปเบฒเบเบปเบเปเบงเป, เบเบฑเปเบเบเบฑเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒ.
เบเบตเบกเบเบฒเบ เบเบดเบ Rebuilds เปเบเบทเปเบญเปเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฝเบงเบเบฑเบเบเบฑเบ VACUUM FULL, เปเบเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฑเบเบเบฐเบเบตเบเบฒเบกเบเบตเปเบเปเปเบกเบนเบเบเบฐเบเบทเบเบเบฑเบเบฅเปเบฒเบเบฑเบเบเบฒเบเบเปเบฒเบเบฎเปเบฒเบเบเบฒเบเบขเบนเปเปเบเปเบเปเบ (เปเบเปเปเบเบญเบฐเบเบฒเบเบปเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเปเบฎเบฑเบเบเบฐเบเบฑเบเบชเปเบฒเบฅเบฑเบเปเบเบงเปเบซเบกเป). เปเบเบเบฒเบเบชเบฐเบเบฒเบเบฐเบเบฒเบ, เบเบตเปเปเบกเปเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเบเบตเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบญเบเบเบฒเบกเบเปเบฒเบเบงเบเบซเบเบถเปเบ - เบเปเบงเบเบเบฒเบเบญเปเบฒเบเบเบฑเบเบเบถเบเบซเบผเบฒเบเปเบเบเบเบฑเบเบชเบฐเบเบต. เบเปเปเปเบชเบเบเบญเบเบเปเบฒเบชเบฑเปเบเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบ VACUUM FULL - เบกเบฑเบเบฅเบฑเบญเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ.
เบเบตเบกเบเบฒเบ REINDEX เบเปเบฒเบเบเบทเบเบฑเบเบชเบญเบเบญเบฑเบเบเบตเปเบเปเบฒเบเบกเบฒ, เปเบเปเบชเปเบฒเบเบเบฑเบเบชเบฐเบเบตเบชเบฐเปเบเบฒเบฐเบซเบผเบทเบเบฑเบเบชเบฐเบเบตเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบ. locks เบญเปเบญเบเปเบเบเปเบฅเบฑเบเบเปเบญเบ: ShareLock เปเบเบเบฒเบเบฐเบฅเบฒเบ (เบเปเบญเบเบเบฑเบเบเบฒเบเบเบฑเบเปเบเบ, เปเบเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบฅเบทเบญเบ) เปเบฅเบฐ AccessExclusiveLock เบขเบนเปเปเบเบเบฑเบเบเบฐเบเบตเบเบตเปเบเบทเบเบชเปเบฒเบเปเบซเบกเป (เบเบฅเบฑเบญเบเบเบฒเบเบชเบญเบเบเบฒเบกเปเบเบเปเบเปเบเบฑเบเบเบฐเบเบตเบเบตเป). เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเบชเบฐเบเบฑเบเบเบต 12 เบเบญเบ Postgres เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบเปเบเบฒเบเบปเบ
เปเบเบชเบฐเบเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบญเบ Postgres, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบฅเบธเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ REINDEX เบเปเบญเบกเบเบฑเบเปเบเบเปเบเป
เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบฑเบเบชเบฐเบเบตเบกเบตเบงเบดเบเบตเบเบตเปเบเบฐเบเปเบฒเบเบฑเบเบเบฒเบ bloat "เปเบเบเบฒเบเบเบดเบ", เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบตเบเบฒเบเบฐเบฅเบฒเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเบชเปเบงเบเบเบฐเบซเบเบฒเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเปเบเบปเปเบฒเบกเบฒเบกเบตเบเบปเบเบเบฒเบ:
pg_repack เปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฒเบเบฐเบฅเบฒเบเบเปเบฒเบกเบฐเบเบฒเบขเปเบฒเบเบชเบปเบกเบเบนเบ - เบกเบตเบเบฑเบเบชเบฐเบเบต, เบเปเปเบเปเบฒเบเบฑเบเปเบฅเบฐ, เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบกเบต bloat. เบเบฑเปเบเบเบญเบเบเปเบฒเบญเบดเบเบเบญเบ pg_repack เปเบกเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบถเบเปเบเบทเปเบญเปเบเบฑเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบเบซเบกเบปเบเปเบเบเบฐเบเบฐเบเบตเปเบกเบฑเบเปเบฅเปเบ. เบเบปเบงเบเบฐเบเบธเปเบเบเบฐเปเบฎเบฑเบเบเปเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเปเบซเบผเบปเปเบฒเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบธเบเปเบเบฒเบเปเบชเป, เบเบฑเบเบเบธเบเปเบฅเบฐเบฅเบถเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบฐเบฅเบฒเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบ, เบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเปเบเบเบชเปเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบ, เปเบเปเบเปเปเบกเบตเบเบฑเบเบชเบฐเบเบตเปเบฅเบฐเบเปเปเบเปเบฒเบเบฑเบ, เปเบเบทเปเบญเบเปเปเปเบซเปเบเบฐเบเบงเบเบเบฒเบเปเบเบเบเปเปเบกเบนเบเบเปเบฒเบฅเบปเบ.
เบเปเปเปเบ, pg_repack เปเบญเบเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบปเปเบฒเปเบเบซเบฒเบเบฒเบเบฐเบฅเบฒเบเปเบซเบกเป, เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบญเบญเบเบเบฒเบเปเบเบงเบเบตเปเบเปเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบซเบกเบปเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเปเบฒเบเบเบฑเบเบชเบฐเบเบตเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฐเบฅเบฒเบเปเบซเบกเป. เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบชเบปเบกเบขเบนเปเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบถเบ.
เบเบฑเปเบเบเบญเบเบเปเปเปเบเปเบกเปเบเบเบฒเบเปเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบซเบฒเบเบฒเบเบฐเบฅเบฒเบเปเบซเบกเป. เบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเปเบเปเบฅเบเบฐเบซเบผเบฒเบเปเบเบฑเปเบ, เปเบฅเบฐเปเบกเบทเปเบญเบกเบตเบซเบเปเบญเบเบเบงเปเบฒ 20 เบฅเบฒเบเบเบฒเบเบเบตเปเปเบซเบผเบทเบญเบขเบนเปเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบถเบ, pg_repack เปเบเปเบฎเบฑเบเบเบฒเบเบฅเบฑเบญเบเบเบตเปเปเบเบฑเปเบกเปเบเบ, เบเปเบฒเบเบเปเปเบกเบนเบเบซเบผเปเบฒเบชเบธเบ, เปเบฅเบฐเบเปเบฝเบเปเบเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบปเปเบฒเบเปเบงเบเบเบฒเบเบฐเบฅเบฒเบเปเบซเบกเปเปเบเบเบฒเบเบฐเบฅเบฒเบเบฅเบฐเบเบปเบ Postgres. เบเบตเปเปเบกเปเบเปเบงเบฅเบฒเบเบฝเบงเปเบฅเบฐเบชเบฑเปเบเบเบตเปเบชเบธเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบ. เบซเบผเบฑเบเบเบฒเบเบเบตเป, เบเบฒเบเบฐเบฅเบฒเบเปเบเบปเปเบฒเปเบฅเบฐเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบกเบตเบเบฑเบเบเบถเบเบเบทเบเบฅเบถเบเบเบดเปเบกเปเบฅเบฐเบเบทเปเบเบเบตเปเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบเบฅเบฐเบเบปเบเปเบเบฅเป. เบเบฐเบเบงเบเบเบฒเบเปเบกเปเบเบชเปเบฒเปเบฅเบฑเบ.
เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเปเบเบเบดเบเบชเบฐเบเบต, เปเบเปเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ? เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบเบชเบญเบ pg_repack เปเบเบเบเปเปเบกเบตเบเบฒเบเปเบซเบผเบเปเบฅเบฐเบเบฒเบเปเบเปเบเบฒเบเปเบซเบผเบ, เปเบฅเบฐเบเบงเบเปเบเบดเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบกเบฑเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบขเบธเบเบเปเบญเบเปเบงเบญเบฑเบเบเบงเบ (เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบเบฒเบเบเปเบฒเปเบเป Ctrl+C). เบเบฒเบเบเบปเบเบชเบญเบเบเบฑเบเปเบปเบเปเบกเปเบเปเบเบฑเบเบเบงเบ.
เบเบงเบโเปเบฎเบปเบฒโเปเบโเบฎเปเบฒเบโเบญเบฒโเบซเบฒเบ - เปเบฅเบฐโเบซเบผเบฑเบโเบเบฒเบโเบเบฑเปเบโเบเบธเบโเบชเบดเปเบโเบเบธเบโเบขเปเบฒเบโเบเปเปโเปเบเปโเปเบเบฑเบโเปเบโเบเบฒเบกโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเบฒเบโเบซเบงเบฑเบโ.
pancake เบเปเบฒเบญเบดเบเบเบตเปเบเบฒเบ
เปเบเบเบธเปเบกเบเปเบฒเบญเบดเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบฅเบฐเปเบกเบตเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบ:
$ ./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, เบเบฒเบเปเบเบปเปเบฒเบเปเบฒเบญเบดเบเบเบฐ "เบขเบทเบ" เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบตเบชเบญเบเปเบฅเบฐเบเบตเบชเบฒเบก. เบเบฒเบเปเบเปเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ, เปเบเปเบกเบตเบชเบญเบเบเปเปเบเปเบฒเบเบฑเบ. เบซเบเปเบฒเบเปเบฒเบญเบดเบ, เบกเบฑเบเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบกเบนเบเบเปเบฒเบเบทเบเบเปเบฒเปเบเปเบเบฒเบเบเปเบญเบเปเบเบเบฒเบเปเบเปเบเบญเบ. เบญเบฑเบเบเบตเบชเบญเบ, เบญเบตเบเบเบฒเบกเบเบงเบฒเบกเปเบกเปเบเบเปเบฒเบเบญเบเบเบฐเปเบเบเบเปเปเบกเบนเบ, เบเปเบฒเบเบเบฐเบกเบตเบเปเบฒเบเบงเบเบเปเบฒเบเบฑเบเบเบญเบ inserts เบเบตเปเปเบเบฑเบเปเบเปเบเปเบเปเบญเบเบเบตเปเบเบฐเบเบดเบเปเบฅเปเบกเบนเบเบเปเบฒเบเบญเบเบเบฑเบเบเบถเบเบเบฑเบเบซเบกเบปเบ.
เบเบฒเบโเปเบฅเบทเบญเบโเบเบตโเบชเบฒเบกโ: เปเบฎเบฑเบโเปเบซเปโเบเปเปโเบเปเบฒโเบเบฑเบโเปเบฅเบทเปเบญเบโเปเบงโเบฅเบฒโเปเบเบทเปเบญโเปเบซเปโเบกเบฑเบโเบเบทเบโเบเบงเบโเบชเบญเบโเบเบฝเบโเปเบเปโเปเบโเปเบงโเบฅเบฒโเบเบตเปโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโ:
create table cars
(
name text constraint pk_cars primary key,
ord integer not null constraint uk_cars unique deferrable initially deferred
);
เบเบฑเบเบเบฑเปเบเปเบเปเปเบซเบเบเบปเบเบเบญเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบทเปเบญเบเบเบปเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบกเบนเบเบเปเบฒเบเบฑเบเบซเบกเบปเบเปเบกเปเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ, เบกเบฑเบเบเบฐเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ.
เบเบปเบงเบขเปเบฒเบเบเบตเปเบชเบปเบเบเบฐเบเบฒเบเปเบฒเบเปเบเบดเบเบเบตเปเปเบกเปเบ, เปเบเปเบเบญเบ, เบชเบฑเบเปเบเบฒเบฐเบซเบผเบฒเบ, เปเบเปเบกเบฑเบเปเบเบตเบเปเบเบตเบเปเบเบงเบเบงเบฒเบกเบเบดเบ. เปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเปเบซเบเบเบปเบเบเบตเปเบกเบตเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเปเบเปเปเบเบเปเปเบเบฑเบเปเบเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบนเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบเปเบญเบกเปเบเบฑเบเบเบฑเบเบงเบฑเบเบเบธ widget เบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบเปเบเบเบฐเบเบฒเบ. เบเบฒเบเบเปเบฒเปเบเปเบเปเปเบเปเบฒเบเบฑเบเบเบฑเปเบเบเปเบฒเบงเปเบฎเบฑเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเบฅเบฐเบซเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบฑเบเบเบฝเบเปเบฅเบฑเบเบเปเบญเบเบเปเบฒเบเบเบฒเบ.
เปเบเบเบเบปเปเบงเปเบ, เบญเบตเบเบเบฒเบกเบเบฐเปเบเบเบเบญเบเบเปเปเบเปเบฒเบเบฑเบ, Postgres เบกเบตเบชเบฒเบกเบฅเบฐเบเบฑเบเบเบญเบ granularity เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒ: เปเบเบง, เบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒ, เปเบฅเบฐเบฅเบฐเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ:
เบเบงเบเปเบเบดเปเบ เปเบฅเบฐเบเปเป NULL เบชเบฐเปเบซเบกเบตเบเบทเบเบเบงเบเบชเบญเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเปเบเบง; เบชเปเบฒเบฅเบฑเบเบเปเปเบเปเบฒเบเบฑเบเบญเบทเปเบเป, เบเบฑเปเบเบเบตเปเปเบซเบฑเบเปเบเปเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบ, เบกเบตเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเบตเปเบกเปเบเบตเบก
เปเบเบทเปเบญเบชเบฐเบซเบผเบธเบเปเบเบเบซเบเปเป, เบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒเปเบเบซเบผเบฒเบเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเปเบซเปเบฅเบฐเบซเบฑเบเบเบตเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเบซเบผเบฒเบเปเบฅเบฐเบเปเบฒเบชเบฑเปเบเบซเบเปเบญเบเบฅเบปเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเบเปเบญเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเปเปเบเบ complicating เบเบฐเบเบงเบเบเบฒเบ debugging, เบเบฑเบเบเบฑเปเบเปเบเปเบเบฑเบเบเบธเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบตเบเบเบถเปเบเปเบฅเบฐเบเบฑเบเบเบธเบเบฑเบเบเบตเปเบเปเบฒเบเบเบญเบเบซเบฒเบกเบฑเบเปเบเปเบเบทเบเปเบเบเบญเบญเบเปเบเปเบงเบฅเบฒเบเบตเป. เบเบฑเบเบซเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเปเบญเบตเบเบขเปเบฒเบเบซเบเบถเปเบเปเบกเปเบเบงเปเบฒเบเบนเปเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบญเบฒเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเบเบเบฒเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเปเบเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒเบเปเบฒเบเปเบฒเบฎเปเบญเบเบเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒ.
เบเบฒเบเบเบฑเบเบเบธเบ 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 เบเบทเบเบเบฐเบเบดเบเบฑเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบฒเบเบเบงเบเบชเบญเบเบเบทเบเบเบฐเบเบดเบเบฑเบเบเบทเบเบฑเบเปเบเบเบฑเบเบชเบญเบเบเปเบฅเบฐเบเบต: เบญเบฒเบเบเบฐเบเบฑเบเบเปเบฒเบขเบนเปเบชเบฐเปเบซเบกเบต, เบซเบผเบทเบเบฑเบเบเบตเบเบฑเบเปเบ.
เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบงเบฒเบกเบเบดเบเปเบเบงเปเบ?
เบชเปเบฒเบเบเบฑเบเบชเบฐเบเบตเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ deferred
เบเบงเบฒเบกเบเบดเบเบเปเบฒเบญเบดเบเปเบกเปเบเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฑเบเบชเบญเบเปเบเบฎเบนเบเปเบเบเบเบฑเบเบเบต. เบเบตเปเบญเบฒเบเบเบฐเบชเปเบฒเบเบเปเปเบเปเบฒเบเบฑเบเบเบฒเบเบเบงเบเบเบตเปเบเปเปเบเบทเบเบเปเบญเบเบซเบผเบฒเบ, เปเบเปเบเปเบฒเบกเบตเบเปเบฒเบเบงเบเบซเบเปเบญเบ, เบเบตเปเบเปเปเบเบงเบเบชเบปเปเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบนเปเปเบเป, เปเบเบฒเบฐเบงเปเบฒเบเบงเบฒเบกเบเบฑเบเปเบเปเบเบเบฑเปเบเบเปเบฒเบงเปเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบปเบเบเบฐเบเบดเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบเบปเบฒ. เบเบงเบเบกเบฑเบเปเบเบตเบเบเบทเปเบ, เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ, เปเบกเบทเปเบญเบเบนเปเปเบเปเบชเบญเบเบเบปเบเปเบฅเบตเปเบกเปเบเปเปเบ widget เบเบฝเบงเบเบฑเบเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เปเบฅเบฐเบฅเบนเบเบเปเบฒเบเบญเบเบเบนเปเปเบเปเบเบตเบชเบญเบเบเปเปเบกเบตเปเบงเบฅเบฒเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเบตเป widget เบเบทเบเบเบฅเบฑเบญเบเปเบฅเปเบงเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเปเบเปเปเบเบเบเบนเปเปเบเปเบเปเบฒเบญเบดเบ. เปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบง, เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบฐเบเบดเปเบชเบเบเบนเปเปเบเปเบเบตเบชเบญเบ, เปเบฅเบฐเบฅเบนเบเบเปเบฒเบเบญเบเบกเบฑเบเบเบฑเบเบเบทเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบฅเบฐเบเบฑเบเบเบงเบฒเบ widget. เปเบฅเบฑเบเบเปเบญเบเบเปเปเบกเบฒ, เปเบกเบทเปเบญเบเบนเปเปเบเปเบเปเบฒเบญเบดเบเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเปเบเปเปเบ, เบเบนเปเบเบตเบชเบญเบเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเบตเป widget เบเปเปเปเบเปเบเบทเบเบเบฅเบฑเบญเบเบญเบตเบเบเปเปเปเบเปเบฅเบฐเบเบฐเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเปเปเบฒเบญเบตเบ.
เปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบเบฒเบเบเบงเบเบชเบญเบเบขเบนเปเปเบเปเปเบเบเปเปเบเบทเบเปเบฅเบทเปเบญเบเบชเบฐเปเปเบต, เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเบเบเบฑเบเบชเบฐเบเบตเปเปเปเบเบตเปเบเปเบฒเบเบเบฑเบเบเปเปเบเบณเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒเปเบเบตเบก:
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.
เปเบเบฑเบเบซเบเบฑเบเบกเบฑเบเปเบเบตเบเบเบถเปเบ? เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบเปเบฒเบเบงเบเบเบนเปเปเบเปเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ widget เบเบฝเบงเบเบฑเบเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ. เบเบฒเบเบปเบเบเบทเปเบ, เปเบเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบเบฑเบเบซเบเปเบญเบเบฅเบปเบเบเบฑเบเบเปเปเบกเบนเบเบเบตเปเปเบเบฑเบเปเบงเปเปเบเบเบธเปเบกเบเปเบฒเบญเบดเบเบเปเบงเบฒเบเบปเบเบญเบทเปเบ, i.e. เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเป "เปเบเบเบเบต".
เบเบงเบฒเบกเบเบดเบเบเปเปเปเบเปเบเบปเบ. เปเบเบเบธเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฑเบเบงเบดเบเบตเปเบเปเปเบเบญเบตเบเบชเบญเบเบขเปเบฒเบ: เบเบฝเบเบฅเบฐเบซเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบทเบเปเบซเบกเปเปเบเบทเปเบญเปเบเบเบขเบฒเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒ, เบซเบผเบท "เบชเบญเบ" pg_repack เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบงเบเปเบเบปเบฒ. เบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบเบญเบฑเบเบเบตเบชเบญเบ.
เปเบเบเบเบตเปเบเบฑเบเบเบฐเบเบตเปเบเบเบฒเบเบฐเบฅเบฒเบเปเบซเบกเปเบเปเบงเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบ
เบเบธเบเบเบฐเบชเบปเบเบเบญเบเบเบฒเบเปเบเปเปเบเปเบกเปเบเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบ - เบเปเบฒเบเบฒเบเบฐเบฅเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบเบกเบตเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบเปเบซเบกเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบเปเปเบเปเบฒเบเบฑเบเบเบฑเปเบเบเปเบฒเบง, เปเบฅเบฐเบเปเปเปเบกเปเบเบเบฑเบเบชเบฐเบเบต.
เปเบเบทเปเบญเบเบปเบเบชเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเบเบเบปเบเบชเบญเบเบเปเบฒเบเป:
- เบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบกเบตเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเปเบฅเบทเปเบญเบเปเบงเบฅเบฒเปเบฅเบฐเบเบฑเบเบเบถเบเบซเบเบถเปเบ;
- เปเบชเปเบเปเปเบกเบนเบเปเบ loop เบเบตเปเบเบฑเบเปเบเปเบเบเบฑเบเบเบฑเบเบเบถเบเบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง;
- เบเบฑเบเบเบธเบเปเบซเปเบเบฑเบ โ เบเปเปเบกเบนเบเบเปเปเบเบฑเบเบเบฑเบเบญเบตเบเบเปเปเปเบ;
- เบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฒเบเบเปเบฝเบเปเบเบ.
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 เบชเบฐเปเบซเบกเบต crashed เปเบ insert เบเปเบฒเบญเบดเบ, เบชเบฐเบเบฑเบเบเบฑเบเปเบเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเบเปเปเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบ. เบเบดเปเบเปเบซเบเป.
เบเบงเบเปเบฎเบปเบฒเปเบเบซเบฒเบเบฒเบเบเบฐเบฅเบดเบเปเบฅเบฐเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเปเบฅเบเบฐเบเบฝเบงเบเบฑเบเบเบญเบเบเบฒเบเบเบฑเบเบฅเบญเบเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบถเบเปเบเบซเบฒเบญเบฑเบเปเบซเบกเป:
$ ./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 เบเบฑเบเบเบถเบ, เปเบเบดเปเบเบญเบฐเบเบดเบเบฒเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบถเปเบเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ - เบเบงเบเบกเบฑเบเบเปเปเปเบเปเบเบงเบกเปเบญเบปเบฒเบเปเบฅเบฐเบเบตเบเบญเบ โbatch junctionโ. เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเปเบชเบญเบเบเปเบฒเบชเบฑเปเบ - เปเบชเปเปเบฅเบฐเบเบฑเบเบเบธเบ, เบเบฑเปเบเบเบฑเปเบเปเบเปเบเบญเบ 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;
เบเบฑเปเบเบเบฑเปเบ, เบงเบฝเบเบเบฒเบเบเปเปเปเบเปเบกเปเบเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบ, เบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบซเบเบถเปเบเบเบธเบฅเบฐเบเปเบฒ, เบชเบดเปเบเบชเบธเบเบฅเบปเบเปเบเบเบฒเบเบฐเบฅเบฒเบเปเบซเบกเปเบเบฒเบเปเบเบซเบเบถเปเบเบเบธเบฅเบฐเบเปเบฒ.
เบเบฒเบเบเบฐเบเบดเปเบชเบเบเบฒเบ batch
เปเบฅเบฐเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบญเบเบงเบดเบเบตเปเบเปเปเบ. เบซเบเปเบฒเบเปเบฒเบญเบดเบ: เปเบซเปเบเบฐเบเบดเปเบกเบขเปเบฒเบเบชเบปเบกเบเบนเบเบเบฒเบเปเบเปเบเบเบฑเบเปเบเบปเปเบฒเปเบเปเบ batches เปเบฅเบฐเปเบญเบเบเปเปเบกเบนเบเปเบเบซเบเบถเปเบเบเบธเบฅเบฐเบเปเบฒ. เบเบฐเปเบซเบเบเบเบญเบเบเบฒเบเปเบเปเปเบเบเบตเปเปเบกเปเบเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบเบเบญเบเบกเบฑเบ - เบเบฒเบเบเปเบฝเบเปเบเบเบฅเบฐเบซเบฑเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบกเปเบเบซเบเปเบญเบ (เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เปเบเบฎเบธเปเบเปเบเบปเปเบฒ pg_reorg เปเบฎเบฑเบเบงเบฝเบเบเบทเบเบฑเบ). เปเบเปเบกเบตเบเบฑเบเบซเบฒ - เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบชเปเบฒเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบเบฒเบงเบเบฒเบ, เปเบฅเบฐเบเบตเป, เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบเบฑเบเปเบเบเบปเปเบกเบเบนเปเบเปเปเบเบฒเบเปเบเบตเบเปเบซเบกเปเบเบญเบ bloat เปเบซเบกเป.
เบเบฒเบเปเบเปเปเบเบเบตเบชเบญเบเปเบกเปเบเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ, เปเบเปเบญเบฒเบเบเบฐเบเบทเบเบเปเบญเบเบเบงเปเบฒ: เบชเปเบฒเบเบเบฑเบเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบถเบเบเบตเปเบกเบตเบเบปเบงเบฅเบฐเบเบธเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบเบตเปเปเบเบตเปเบกเบเปเปเบกเบนเบเปเบชเปเบเบฒเบเบฐเบฅเบฒเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบญเบเบเปเปเบกเบนเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฑเบเบเบธเปเบกเบกเบฑเบเปเบเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเปเบฅเบฐเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบทเบเปเบญเบเปเบเบปเปเบฒเบเบฑเบ. batch เบเบฐเบเบทเบเบชเปเบฒเบเบเบฑเปเบเบเบถเปเบเบเบฒเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบซเบผเบฒเบเบเบฑเปเบ (เบซเบผเบทเบซเบเบถเปเบเบเบฐเบซเบเบฒเบเปเบซเบเป) เปเบฅเบฐเบเบฐเบซเบเบฒเบเบเบญเบเบกเบฑเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบเบเบถเปเบเบเบฑเบเบเปเบฒเบเบงเบเบเปเปเบกเบนเบเบเบตเปเบเบทเบเบเปเบฝเบเปเบเบเปเบเบเบธเบฅเบฐเบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเป. เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบชเบฑเบเปเบเบเบงเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบถเบเปเบเบฅเปเบฒเบเบฑเบเปเบเบเบชเบธเปเบก, เบกเบฑเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเบกเบฑเบเบเบฒเบกเบฅเปเบฒเบเบฑเบ, เบเบฑเปเบเบเบตเปเปเบเบตเบเปเบเบฑเบเบกเบฒเบเปเบญเบ. seqscan เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเปเบเบตเปเบกเบตเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบ tx_id เปเบกเปเบเบฅเบฒเบเบฒเปเบเบเปเบเบตเบเปเบ, เบเบฑเบเบชเบฐเบเบตเปเบกเปเบเบเปเบฒเปเบเบฑเบ, เปเบเปเบกเบฑเบเบเบฑเบเบเบฐเบเปเบฒเบฅเบปเบเบงเบดเบเบตเบเบฒเบเปเบเบทเปเบญเบเบเบฒเบ overhead เบเบญเบเบเบฒเบเบเบฑเบเบเบธเบเบกเบฑเบ. เปเบเบเบเบปเปเบงเปเบ, เบเบฒเบกเบชเบฐเปเบซเบกเบต, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบชเบเบชเบฐเบฅเบฐเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบฒเบเปเบฅเบทเบญเบเบเปเบฒเบญเบดเบ, เบเปเบญเบเบงเปเบฒเบกเบฑเบเบเปเบฒเบเบเบงเปเบฒ. เบเปเบฒเบญเบดเบ, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบปเปเบฒเปเบเบงเปเบฒเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบเบฒเบงเบเบฒเบเบเบฐเปเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเปเบเปเบเบดเบ. เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเปเบญเบเบเปเปเบกเบนเบเบเบปเปเบเบเปเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบปเปเบฒเปเบเบซเบฒเปเบซเบกเปเบเปเปเปเบเบตเบเบเบทเปเบเปเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบเบฒเบงเบเบฒเบ, เบเปเบฒเบเบฒเบกเบเบตเปเบเปเบฝเบเปเบเบฑเบ "เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเปเบกเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบซเบผเบฒเบเบเบฒเบเปเบ?" เปเบฅเบเบฐเปเบงเบฅเบฒเบเบญเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบเบฑเปเบเบเปเบฒเบญเบดเบเบชเปเบงเบเปเบซเบเปเปเบกเปเบเบเบถเปเบเบเบฑเบเบเบฐเบซเบเบฒเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบ. เปเบฅเบเบฐเปเบงเบฅเบฒเบเบญเบเปเบซเบกเปเปเบกเปเบเบเบถเปเบเบเบฑเบเบเปเบฒเบเบงเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบชเบฐเบชเบปเบกเบขเบนเปเปเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบญเบเบเปเปเบกเบนเบ, i.e. เบเปเบฝเบงโเบเบฑเบโเบเบงเบฒเบกโเปเบเบฑเปเบกโเปเบเบโเบเบญเบโเบเบฒเบโเปเบซเบผเบโเปเบเปโ. เบเบฒเบเปเบฅเปเบ pg_repack เปเบเบตเบเบเบถเปเบเปเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบญเบเบเบฒเบเปเบซเบผเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบซเบเปเบญเบ, เปเบฅเบฐเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบกเปเบเบซเบเปเบญเบเบฅเบปเบเปเบกเบทเปเบญเบเบฝเบเบเบฑเบเบเบฐเบซเบเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบ. เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบฅเบฐเปเบฅเบตเบเปเบงเบฅเบฒเบเบญเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเปเบซเบกเป (เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ, เปเบเบเบชเบฐเปเบฅเปเบเปเบกเปเบ 1 เบเบปเปเบงเปเบกเบ 2-3 เบเบฒเบเบต).
เบเบฒเบเบเบปเบเบฅเบญเบเปเบเปเบเบปเบเปเบเบเบฒเบเบเบงเบ. เปเบเบตเบเบเบปเบงเบเบฒเบเบเบฐเบฅเบดเบเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ. เปเบเบทเปเบญเบเบงเบฒเบกเบเบฑเบเปเบเบ, เบเบตเปเปเบกเปเบเบฎเบนเบเบเบตเปเบกเบตเบเบฐเบซเบเบฒเบเบเบญเบเบซเบเบถเปเบเปเบเบเบฒเบเบเปเปเบกเบนเบเบซเบผเบฑเบเบเบฒเบเปเบฅเปเบ:
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบงเบฒเบกเบเปเปเบเบขเปเบฒเบเบชเบปเบกเบเบนเบเบเบฑเบเบเบฒเบเปเบเปเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเบฐเบเบฒเบเบฒเบกเบเบฐเบเบดเบเบฑเบเบญเบฑเบเบเบตเบชเบญเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบเบดเบเบฒเบฅเบฐเบเบฒเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบชเบปเบเบเบฐเบเบฒเบเบฑเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเบฒเบเบเบฐเบซเบเบฒเบ. เบเบฒเบเปเบเปเปเบเปเบเบเบฐเบเบธเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเบฑเบเบเปเปเบเบฑเบเบเปเบญเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบกเปเบเบตเบเปเบเป, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบกเบตเบเปเปเบเปเบฒเบเบฑเบเบเบฒเบเปเบฅเบทเปเบญเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบ, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบ patch เปเบเบฑเบกเบเบตเปเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฐเบซเบเบญเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฐเปเบเบเบญเบทเปเบเป. เบเบงเบเปเบฎเบปเบฒเบซเบงเบฑเบเบงเปเบฒเบเบฐเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเปเปเบเบญเบฐเบเบฒเบเบปเบ.
เบเบฒเบเบเบตเปเบเบปเปเบฒเบกเบตเบเปเบฒเบเบฒเบก, เปเบเบฑเบเบซเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบถเปเบเบกเบตเบชเปเบงเบเบฎเปเบงเบกเปเบเปเบฅเบทเปเบญเบเบเบตเปเบเปเบงเบเบเบฒเบเบเบฑเบเปเบเบ pg_repack, เปเบฅเบฐเบเปเปเปเบเปเปเบเปเบเบปเบงเบเบฝเบเบเบฝเบเบเบญเบเบกเบฑเบ? เปเบเบเบฒเบเบเบธเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบดเบเบเปเบฝเบงเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเป, เปเบเปเบเบฐเบชเบปเบเบเบฒเบเปเบเบเบฒเบเบเบงเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเปเปเบกเบตเบเปเปเบเปเบฒเบเบฑเบ, เบเบฐเบเบธเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฒเบเบฒเบกเปเบเบปเปเบฒเปเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเบเบฑเบเบซเบฒเปเบฅเบฐเปเบเปเปเบเบกเบฑเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบเปเบฒเปเบเปเบงเบดเบเบตเปเบเปเปเบเบญเบทเปเบเปเบเบฑเบเบเปเบญเบเบเบฒเบเปเบงเบฅเบฒเปเบเบเบฒเบเบเบปเบเบชเบญเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบถเปเบเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเปเปเบเบเบฑเบเบซเบฒเปเบเบกเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เปเบฅเบฐเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเปเบงเบฅเบฒเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบตเปเบกเปเบเบดเปเบ analogues. .
เบเบฒเบเบเบปเปเบเบเบปเบ
เบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบฐเบเปเบฒเปเบเบเบญเบตเบเปเบชเปเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบญเบ:
- เบเบดเบโเบเบฒเบกโเบเบงเบโเบเบฒ bloat เบเบญเบโเบเปเบฒเบโ. เบญเบตเบเบเบฒเบกเบเปเปเบกเบนเบเบเบฒเบเบเบดเบเบเบฒเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบงเปเบฒ autovacuum เบเบทเบเบเบฑเปเบเบเปเบฒเปเบเปเบเบตเบเบฒเบเปเบ.
- เบเบฑเบ AUTOVACUUM เปเบเบทเปเบญเบฎเบฑเบเบชเบฒเบเบฒเบเบเบงเบกเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบเบตเปเบเบญเบกเบฎเบฑเบเปเบเป.
- เบเปเบฒ bloat เบเบฑเบเปเบเบตเบเปเบซเบเปเปเบฅเบฐเบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบเบฐเบเบฐเบกเบฑเบเปเบเปเปเบเบเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบญเบเบเปเบญเบ, เบขเปเบฒเบขเปเบฒเบเบเบตเปเบเบฐเปเบเปเบเบฒเบเบเบฐเบซเบเบฒเบเบเบฒเบเบเบญเบ. เบชเบดเปเบเบเบตเป เบชเบณ เบเบฑเบเปเบกเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบธเบเบขเปเบฒเบเบเบตเปเบเบต.
- เบขเปเบฒเบขเปเบฒเบเบเบตเปเบเบฐเบเบฑเบเปเบเบเบงเบดเบเบตเปเบเปเปเบเบเบฒเบเบเบญเบเปเบเบทเปเบญเปเบซเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเปเบเบปเปเบฒ - เบเบฒเบเบเบฑเปเบเบเบตเปเบชเบฒเบกเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบฅเบฐเบเปเบฒเบเบเบงเปเบฒเบเบฒเบเบเปเบฝเบเบฅเบฐเบซเบฑเบเบเบญเบเบเปเบฒเบเปเบญเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com