แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ–แƒ” แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ˜แƒก แƒ”แƒคแƒ”แƒฅแƒขแƒ˜ แƒคแƒแƒ แƒ—แƒแƒ“ แƒแƒ แƒ˜แƒก แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ“แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ Postgres-แƒจแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ–แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ VACUUM FULL แƒแƒœ CLUSTER, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ‘แƒšแƒแƒ™แƒแƒ•แƒ”แƒœ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ.

แƒกแƒขแƒแƒขแƒ˜แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ—แƒ”แƒแƒ แƒ˜แƒแƒก แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ”แƒ‘แƒ แƒซแƒแƒšแƒแƒ— แƒ›แƒแƒก, แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ›แƒแƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒก pg_repack แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒฉแƒ”แƒ›แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒ•แƒšแƒ PgConf.Russia 2020-แƒ–แƒ”.

แƒ แƒแƒขแƒแƒ› แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒจแƒฃแƒžแƒ”แƒ‘แƒ?

Postgres แƒ”แƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒก (MVCC). แƒ›แƒ˜แƒกแƒ˜ แƒแƒ แƒกแƒ˜ แƒ˜แƒ›แƒแƒจแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒก, แƒ แƒแƒ› แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒฎแƒแƒšแƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒฉแƒแƒœแƒก แƒแƒ แƒ แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒ› แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ”. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒแƒก แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ“แƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒแƒ  แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒแƒก แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ–แƒ”.

แƒชแƒฎแƒแƒ“แƒ˜แƒ, แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜. Postgres แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜-แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒ“แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒ“แƒแƒœ แƒแƒœ แƒฉแƒแƒฌแƒ”แƒ แƒ. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒชแƒ˜แƒ แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ แƒ”แƒก.

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ—. แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒก แƒชแƒแƒชแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ” แƒฉแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ (แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒœแƒ” แƒแƒ แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒ˜ แƒฉแƒแƒ“แƒ”แƒœแƒ˜แƒšแƒ˜).

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒแƒแƒฎแƒšแƒ”แƒ— แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜, แƒ แƒ˜แƒ—แƒแƒช แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ”แƒ— แƒซแƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒแƒ แƒ”แƒšแƒ”แƒ•แƒแƒœแƒขแƒฃแƒ แƒ˜.

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒœแƒแƒ‘แƒ˜แƒฏ-แƒœแƒแƒ‘แƒ˜แƒฏ, แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒฌแƒแƒจแƒšแƒ, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒ˜ แƒแƒ แƒ˜แƒก "แƒœแƒแƒ’แƒแƒ•แƒ˜". แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒฉแƒแƒœแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

Postgres-แƒก แƒแƒฅแƒ•แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ แƒ•แƒแƒ™แƒฃแƒฃแƒ›แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒก แƒ“แƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ“ แƒแƒ’แƒ แƒ”แƒกแƒ˜แƒฃแƒšแƒแƒ“ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒ แƒฉแƒ”แƒ‘แƒ โ€žแƒœแƒแƒ’แƒ•แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜โ€œ แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ—.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜, แƒ“แƒ แƒแƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ แƒแƒ—แƒฎแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒกแƒ’แƒแƒœ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒชแƒแƒชแƒฎแƒแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒชแƒฎแƒ แƒ˜แƒšแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒแƒก แƒฉแƒ•แƒ”แƒœ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ— แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒ›แƒ”แƒข แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒแƒญแƒ˜แƒ แƒแƒ.

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ VACUUM แƒแƒฎแƒšแƒ แƒฌแƒแƒจแƒšแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒฃแƒกแƒแƒ‘แƒแƒ›แƒ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก, แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ แƒ›แƒ™แƒ•แƒ”แƒ—แƒ แƒแƒ“ แƒแƒ  แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ“แƒ”แƒ‘แƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ” แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ›แƒ—แƒ”แƒš แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ” แƒแƒฎแƒแƒšแƒ˜ แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ— แƒกแƒแƒญแƒ˜แƒ แƒแƒ–แƒ” แƒ›แƒ”แƒข แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒก.
แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ—แƒฃ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ (แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ›แƒ”แƒแƒ แƒ”) แƒ˜แƒงแƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒก, แƒ›แƒแƒจแƒ˜แƒœ VACUUM แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒ“แƒ แƒ›แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒ˜แƒก แƒจแƒฃแƒแƒจแƒ˜แƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒกแƒ—แƒแƒœ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก.

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒกแƒ”แƒ—แƒ˜ แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒแƒœ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒฌแƒ˜แƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒกแƒแƒช bloat แƒฐแƒฅแƒ•แƒ˜แƒ, แƒ˜แƒก แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒ–แƒ” แƒ–แƒ”แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก.

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒ–แƒ”แƒ›แƒแƒ— แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒแƒ แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒจแƒฃแƒžแƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜. แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒจแƒ˜ แƒ”แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“ แƒฎแƒ“แƒ”แƒ‘แƒ.

แƒ›แƒ” แƒ›แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ‘แƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ?

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒ–แƒ แƒ˜แƒ›แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒ’แƒ”แƒœแƒแƒ“, แƒ’แƒแƒฅแƒ•แƒ— แƒ—แƒฃ แƒแƒ แƒ แƒจแƒ”แƒจแƒฃแƒžแƒ”แƒ‘แƒ. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜แƒก แƒ˜แƒ“แƒ”แƒ แƒแƒ แƒ˜แƒก Postgres-แƒ˜แƒก แƒจแƒ˜แƒ“แƒ แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก, โ€žแƒชแƒแƒชแƒฎแƒแƒšแƒ˜โ€œ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ แƒ.แƒจ. แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒ–แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒแƒ“ แƒแƒ•แƒ˜แƒฆแƒ”แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ PostgreSQL Experts-แƒ˜แƒกแƒ’แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒแƒคแƒแƒกแƒแƒก bloat แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒกแƒแƒ“แƒฆแƒ”แƒ’แƒ แƒซแƒ”แƒšแƒ แƒ“แƒ bloat btree แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒ˜แƒกแƒ˜ แƒชแƒ“แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก 10-20%.

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ pgstattuple, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ“แƒแƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒแƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒ–แƒฃแƒกแƒขแƒ˜ bloat แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ›แƒ—แƒ”แƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ’แƒ•แƒแƒฉแƒœแƒ˜แƒ, แƒ แƒแƒ› แƒ›แƒชแƒ˜แƒ แƒ” bloat แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ, แƒ›แƒ“แƒ” 20%, แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒ˜. แƒ˜แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก แƒจแƒ”แƒ›แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒ˜แƒก แƒแƒœแƒแƒšแƒแƒ’แƒแƒ“ แƒ›แƒแƒ’แƒ˜แƒ“แƒ”แƒ‘แƒ˜ ะธ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜. 50% แƒ“แƒ แƒ–แƒ”แƒ›แƒแƒ—, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒก.

แƒจแƒ”แƒ‘แƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒก แƒ’แƒ–แƒ”แƒ‘แƒ˜

Postgres-แƒก แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒ–แƒ, แƒ แƒแƒ—แƒ แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒก แƒจแƒ”แƒจแƒฃแƒžแƒ”แƒ‘แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒกแƒ—แƒ•แƒ˜แƒก.

แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ— AUTOVACUUM แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ แƒแƒ  แƒ›แƒแƒฎแƒ“แƒ”แƒก. แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒแƒ“, แƒ แƒแƒ› แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒ แƒฉแƒฃแƒœแƒแƒ— แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘ แƒ“แƒแƒœแƒ”แƒ–แƒ”. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ”แƒก "แƒ™แƒแƒžแƒ˜แƒขแƒœแƒ˜แƒก" แƒ แƒฉแƒ”แƒ•แƒแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒฅแƒ”แƒ›แƒแƒจแƒ˜ แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒแƒœ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒ“แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒชแƒแƒขแƒ แƒฌแƒ˜แƒœ แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— AUTOVACUUM แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒ˜แƒ“แƒ˜แƒก แƒชแƒ•แƒแƒšแƒ”แƒ‘แƒแƒ“ แƒžแƒ แƒแƒคแƒ˜แƒšแƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒชแƒฎแƒแƒ“แƒ˜แƒ, แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก.

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜, แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒช AUTOVACUUM แƒ•แƒ”แƒ  แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก, แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฎแƒ”แƒšแƒก แƒฃแƒจแƒšแƒ˜แƒก แƒ›แƒแƒก แƒแƒ› แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜. แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒ แƒแƒฅแƒแƒช แƒแƒจแƒ™แƒแƒ แƒแƒ - แƒ›แƒแƒ˜แƒจแƒแƒ แƒ”แƒ— โ€žแƒฉแƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜โ€œ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ›แƒแƒ›แƒ“แƒ” แƒ“แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ–แƒ” แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒแƒ แƒ˜แƒก OLAP-แƒ˜แƒกแƒ แƒ“แƒ OLTP-แƒ˜แƒก แƒฐแƒ˜แƒ‘แƒ แƒ˜แƒ“แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ’แƒฅแƒแƒœแƒ“แƒ”แƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฎแƒจแƒ˜แƒ แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ™แƒšแƒ” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒ แƒซแƒ”แƒšแƒ•แƒแƒ“แƒ˜แƒแƒœแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ - แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ. แƒแƒกแƒ”แƒ— แƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒฆแƒ˜แƒ แƒก แƒคแƒ˜แƒฅแƒ แƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒกแƒชแƒ”แƒ›แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ“แƒแƒฎแƒ•แƒ”แƒฌแƒแƒก.

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ - แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜ แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒแƒ•แƒแƒœแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ, แƒ›แƒแƒจแƒ˜แƒœ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒ’แƒ แƒ”แƒกแƒ˜แƒฃแƒšแƒ˜ AUTOVACUUM-แƒ˜แƒช แƒ™แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ•แƒ”แƒ  แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒก แƒ“แƒ แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ. แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ (แƒ•แƒ”แƒ แƒขแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒแƒœ แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ แƒ˜) แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ.

แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ˜แƒ› แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— AUTOVACUUM, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ‘แƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒก แƒ–แƒ แƒ“แƒแƒก.

แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ•แƒแƒ™แƒฃแƒฃแƒ›แƒ˜ แƒกแƒแƒ•แƒกแƒ” แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒก แƒ“แƒ แƒขแƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒ—แƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก. bloat-แƒ˜แƒก แƒแƒฆแƒ›แƒแƒกแƒแƒคแƒฎแƒ•แƒ แƒ”แƒšแƒแƒ“ แƒ˜แƒก แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ•แƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ˜แƒญแƒ”แƒ แƒก แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒ–แƒ” แƒ”แƒฅแƒกแƒ™แƒšแƒฃแƒ–แƒ˜แƒฃแƒ  แƒกแƒแƒ™แƒ”แƒขแƒก (AccessExclusiveLock), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒ“แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒก แƒแƒ› แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒ–แƒ” แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก, แƒ—แƒฃแƒœแƒ“แƒแƒช แƒแƒ แƒฉแƒ”แƒ•แƒก. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒแƒฉแƒ”แƒ แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒแƒœ แƒ›แƒ˜แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ“แƒ แƒแƒ˜แƒ— (แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒฌแƒฃแƒ—แƒ˜แƒ“แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒแƒ—แƒแƒ›แƒ“แƒ”, แƒ แƒแƒช แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ–แƒแƒ›แƒแƒ–แƒ” แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒžแƒแƒ แƒแƒขแƒฃแƒ แƒแƒ–แƒ”), แƒ›แƒแƒจแƒ˜แƒœ แƒ”แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒแƒ. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ“แƒ แƒ VACUUM FULL-แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜ แƒ›แƒแƒ•แƒšแƒ˜แƒก แƒ“แƒ แƒแƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜.

แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒก แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช VACUUM FULL, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—แƒแƒช แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ แƒแƒ“ แƒ“แƒแƒšแƒแƒ’แƒ“แƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” (แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก). แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ แƒ˜แƒ’แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒ—. แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช VACUUM FULL - แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒแƒ•แƒก แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก.

แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ แƒ”แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒฌแƒ˜แƒœแƒ แƒแƒ แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒก แƒแƒœ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒก. แƒกแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒแƒ“แƒœแƒแƒ• แƒกแƒฃแƒกแƒขแƒ˜แƒ: ShareLock แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒ–แƒ” (แƒแƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒก แƒ›แƒแƒ“แƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก) แƒ“แƒ AccessExclusiveLock แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ (แƒ‘แƒšแƒแƒ™แƒแƒ•แƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก แƒแƒ› แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—). แƒ—แƒฃแƒ›แƒชแƒ, Postgres-แƒ˜แƒก แƒ›แƒ”-12 แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒฆแƒแƒ“แƒ’แƒ˜แƒœแƒแƒ— แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, แƒ›แƒแƒ“แƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒœ แƒฌแƒแƒจแƒšแƒ˜แƒก แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

Postgres-แƒ˜แƒก แƒแƒ“แƒ แƒ˜แƒœแƒ“แƒ”แƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒแƒ— REINDEX-แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“. แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒ›แƒ™แƒแƒชแƒ แƒ˜ แƒฉแƒแƒ™แƒ”แƒขแƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” (ShareUpdateExclusiveLock, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒ”แƒ แƒ”แƒ•แƒ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ  แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒจแƒ˜), แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒซแƒ•แƒ”แƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒแƒฎแƒšแƒ˜แƒ— แƒ“แƒ แƒฌแƒแƒจแƒแƒšแƒแƒ— แƒซแƒ•แƒ”แƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒฆแƒ›แƒแƒคแƒฎแƒ•แƒ แƒแƒ— แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒฉแƒแƒ แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ’แƒแƒ•แƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ˜แƒกแƒแƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ”.

แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“, แƒ—แƒฃ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ’แƒ–แƒ”แƒ‘แƒ˜, แƒ แƒแƒ—แƒ แƒแƒฆแƒ›แƒแƒ˜แƒคแƒฎแƒ•แƒ แƒแƒก แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ "แƒ“แƒแƒคแƒ แƒ”แƒœแƒ˜แƒกแƒแƒก", แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒ’แƒ˜แƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก. แƒแƒฅ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒแƒ แƒ” แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜: pg_repack (แƒงแƒแƒคแƒ˜แƒšแƒ˜ pg_reorg), pgcompact, pgcompacttable แƒ“แƒ แƒกแƒฎแƒ•แƒ. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ— แƒแƒ  แƒจแƒ”แƒ•แƒแƒ“แƒแƒ แƒ”แƒ‘ แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ pg_repack-แƒ–แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก pg_repack

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, 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-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ . แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ‘แƒแƒจแƒ˜ แƒจแƒ”แƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ— "แƒฉแƒ•แƒ”แƒœแƒ˜" แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒ›แƒแƒก. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒ˜แƒงแƒ, แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ (แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ), แƒ”.แƒ˜. แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒฎแƒ“แƒ”แƒ‘แƒ sql แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒ–แƒ” แƒ’แƒ•แƒ˜แƒแƒœ, แƒ แƒแƒช แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒš แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒก.

แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜: แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก

แƒžแƒแƒขแƒแƒ แƒ แƒ—แƒ”แƒแƒ แƒ˜แƒ แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.
แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜: แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜-แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒฌแƒ˜แƒ’แƒœแƒ˜ แƒแƒ แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒ— - แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜.
แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, 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-แƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ›แƒ˜ แƒ“แƒแƒœแƒ” แƒ›แƒแƒ—แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜แƒก, แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ”แƒ‘แƒ˜.
แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜
แƒฌแƒงแƒแƒ แƒ: แƒ›แƒ—แƒฎแƒแƒ•แƒœแƒ”แƒšแƒ”แƒ‘แƒก

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-แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒก: แƒซแƒ•แƒ”แƒš แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒฐแƒฅแƒแƒœแƒ“แƒ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ, แƒฎแƒแƒšแƒ แƒแƒฎแƒแƒšแƒ›แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜.

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒแƒฅ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› แƒ—แƒฃ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜แƒ แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒแƒ› แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒก แƒ”แƒฅแƒ•แƒ˜แƒ•แƒแƒšแƒ”แƒœแƒขแƒฃแƒ แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ Postgres-แƒจแƒ˜ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฅแƒชแƒ”แƒ•แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒฌแƒ›แƒ“แƒ”แƒ‘แƒ sql แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก.

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒแƒ แƒกแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก โ€žแƒ“แƒแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒแƒจแƒ˜โ€œ: แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ แƒฉแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒ“แƒ แƒแƒก, แƒฎแƒแƒšแƒ แƒแƒฎแƒแƒš แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ sql แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒ•แƒ” แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒแƒ“ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ: แƒแƒœ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒแƒœ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ•.

แƒ›แƒแƒจ แƒ แƒ แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ?

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒ“แƒ”แƒ แƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒ•แƒ” แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜. แƒแƒ›แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒ แƒฃ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ›แƒแƒ—แƒ’แƒแƒœ แƒชแƒแƒขแƒแƒ, แƒ”แƒก แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒแƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒกแƒ”แƒ—แƒ˜ แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒ. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒ แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ•แƒ˜แƒฏแƒ”แƒขแƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒฎแƒแƒšแƒ แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ“แƒ แƒ, แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ, แƒ แƒแƒ› แƒ•แƒ˜แƒฏแƒ”แƒขแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ˜แƒšแƒ˜แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒกแƒ”แƒ— แƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒฃแƒแƒ แƒก แƒแƒ›แƒ‘แƒแƒ‘แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ–แƒ”, แƒฎแƒแƒšแƒ แƒ›แƒ˜แƒกแƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒฃแƒ™แƒแƒœ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ แƒ‘แƒšแƒแƒ™แƒแƒ•แƒก แƒ•แƒ˜แƒฏแƒ”แƒขแƒก. แƒชแƒแƒขแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒก, แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก, แƒ แƒแƒ› แƒ•แƒ˜แƒฏแƒ”แƒขแƒ˜ แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ˜แƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒแƒก.

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒ˜แƒ›แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“, แƒ แƒแƒ› แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜แƒ, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒกแƒ:

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 แƒฌแƒฃแƒ—แƒ˜แƒ).

แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒงแƒ. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒ–แƒ”แƒช. แƒกแƒ˜แƒชแƒฎแƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒฅ แƒแƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’:

แƒžแƒแƒกแƒขแƒ’แƒ แƒ”แƒกแƒ˜: bloat, pg_repack แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒแƒ› แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜แƒ— แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ•แƒ, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ–แƒแƒ“ แƒ’แƒแƒ›แƒแƒกแƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒฎแƒแƒšแƒ แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœแƒ˜ แƒžแƒแƒขแƒฉแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒแƒ›แƒแƒก แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒจแƒ”แƒ•แƒซแƒšแƒ”แƒ‘แƒ—.

แƒแƒšแƒ‘แƒแƒ— แƒ’แƒแƒ’แƒ˜แƒฉแƒœแƒ“แƒ”แƒ‘แƒแƒ— แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ แƒแƒขแƒแƒ› แƒฉแƒแƒ•แƒ”แƒ แƒ—แƒ”แƒ— แƒแƒ› แƒแƒ›แƒ‘แƒแƒ•แƒจแƒ˜ pg_repack-แƒ˜แƒก แƒ›แƒแƒ“แƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ— แƒ“แƒ แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒ˜แƒกแƒ˜ แƒแƒœแƒแƒšแƒแƒ’แƒ”แƒ‘แƒ˜? แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœแƒช แƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ— แƒแƒ›แƒแƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒแƒ“แƒ แƒ” แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ–แƒ˜แƒขแƒ˜แƒฃแƒ แƒ›แƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒ›, แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ–แƒ” แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒ›แƒแƒ’แƒ•แƒชแƒ แƒ›แƒแƒขแƒ˜แƒ•แƒแƒชแƒ˜แƒ, แƒจแƒ”แƒ’แƒ•แƒ”แƒกแƒฌแƒแƒ•แƒšแƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒแƒ แƒกแƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ”แƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒœแƒ. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒกแƒฎแƒ•แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒแƒกแƒ”แƒ•แƒ” แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒแƒขแƒแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒ แƒแƒ› แƒฏแƒ”แƒ  แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒ“แƒ แƒ—แƒฃ แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒแƒ›แƒแƒก แƒ•แƒ”แƒ  แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒ˜แƒ•แƒ แƒฃแƒš แƒ•แƒแƒ“แƒแƒจแƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒแƒœแƒแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒงแƒฃแƒ แƒ”แƒ‘แƒแƒก. .

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜

แƒ แƒ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”:

  1. แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜ แƒแƒ“แƒ”แƒ•แƒœแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒจแƒฃแƒžแƒ”แƒ‘แƒแƒก. แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒงแƒ แƒ“แƒœแƒแƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ—, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒ•แƒแƒ™แƒฃแƒฃแƒ›แƒ˜.
  2. แƒ“แƒแƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ— AUTOVACUUM, แƒ แƒแƒ—แƒ แƒจแƒ”แƒ˜แƒœแƒแƒ แƒฉแƒฃแƒœแƒแƒ— แƒจแƒ”แƒจแƒฃแƒžแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘ แƒ“แƒแƒœแƒ”แƒ–แƒ”.
  3. แƒ—แƒฃ แƒจแƒ”แƒ‘แƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ•แƒ”แƒ  แƒ’แƒแƒ“แƒแƒšแƒแƒฎแƒแƒ•แƒ— แƒ›แƒแƒก แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒแƒ  แƒจแƒ”แƒ’แƒ”แƒจแƒ˜แƒœแƒ“แƒ”แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ’แƒแƒ แƒ” แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ’แƒแƒ›แƒแƒกแƒชแƒแƒ“แƒ.
  4. แƒแƒ  แƒจแƒ”แƒ’แƒ”แƒจแƒ˜แƒœแƒ“แƒ”แƒ— แƒ’แƒแƒ แƒ” แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ” - แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒช แƒ™แƒ˜, แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ