Foundationপ্রথম নীতি থেকে
LEVEL 8 · Database Systems

VACUUM

ভ্যাকুয়াম

Dead tuple-দের জায়গা reuse-যোগ্য করা — MVCC-র জমে থাকা মৃতদেহ সরিয়ে bloat আর transaction-ID wraparound ঠেকানো।

Update/Delete-এ old version মরে কিন্তু জায়গায় থেকে যায় — VACUUM সেই জায়গা FSM-এ ফেরত দেয় (file shrink করে না, সেটা VACUUM FULL):

  • Normal VACUUM: concurrent, cheap, space reuse
  • VACUUM FULL: table rewrite, exclusive lock, space return — শেষ অস্ত্র
  • Freeze: খুব পুরনো tuple-এর xmin আগের বিশেষ মানে বদলানো — wraparound defense
VACUUM (ANALYZE, VERBOSE) orders;
SELECT n_dead_tup FROM pg_stat_user_tables WHERE relname = 'orders';

MVCC যেখানে, সেখানে vacuum অনিবার্য — এ জিনিস ঐচ্ছিক maintenance নয়, design-এর অঙ্গ।