နားလည်ထားရမယ့် အချက်
Partitioning က logical table တစ်ခုကို physical pieces များခွဲပါတယ်။ Query performance သာမက old data ကို partition detach/drop လုပ်ခြင်းအတွက်အသုံးဝင်ပါတယ်။ Table သေးသေးကို partition လုပ်ရင် planning/operations complexity ပိုလာနိုင်ပြီး partition key၊ unique constraints နှင့် missing future partitions ကိုကြိုစီမံရပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Audit events ကို month-by-month `created_at` range partition လုပ်မယ်။ Query တွင် partition key condition ပါမှ pruning ရနိုင်ပြီး `EXPLAIN` နဲ့စစ်ပါ။ Default partition သို့ automated partition creation strategy ကို production runbook ထဲထည့်ရပါတယ်။
အတူတူ စမ်းရေးကြည့်မယ်
CREATE TABLE app.audit_events (
event_id bigint GENERATED ALWAYS AS IDENTITY,
created_at timestamptz NOT NULL,
event_type text NOT NULL,
payload jsonb NOT NULL,
PRIMARY KEY (created_at, event_id)
) PARTITION BY RANGE (created_at);
CREATE TABLE app.audit_events_2026_08
PARTITION OF app.audit_events
FOR VALUES FROM ('2026-08-01') TO ('2026-09-01');
EXPLAIN SELECT * FROM app.audit_events
WHERE created_at >= '2026-08-10' AND created_at < '2026-08-11';August partition တစ်ခုနှင့် pruning စစ်နိုင်သော query plan ရမည်။၅ မိနစ် စမ်းကြည့်
September partition ထပ်ဖန်တီးပြီး boundary timestamp များ ဘယ် partition ဝင်သလဲစမ်းပါ။
သတိလေးတစ်ချက်
Partition မရှိသည့် date ရောက်လာရင် insert fail နိုင်ပါတယ်။ Calendar-based automation နဲ့ alert လိုပါတယ်။
PostgreSQL — Table Partitioning — PostgreSQL Global Development Group