နားလည်ထားရမယ့် အချက်
B-tree က equality/range/sort အတွက် default ဖြစ်ပြီး GIN က multi-valued data၊ JSONB နှင့် text search အတွက်အသုံးများပါတယ်။ GiST က range/geometric operator classes နှင့် BRIN က physical order ဆက်စပ်သည့် အလွန်ကြီးသော tables အတွက်သင့်တော်နိုင်ပါတယ်။ Expression နဲ့ `INCLUDE` columns က query ကိုကူညီပေမယ့် write cost ရှိပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Case-insensitive email lookup အတွက် `lower(email)` expression index သုံးပြီး published catalog ကို covering index ဖြင့် optimize လုပ်မယ်။ Index usage statistics ကိုကြည့်ပြီး duplicate/unused index များကို workload window အပြည့်စုံပြီးမှဆုံးဖြတ်ပါ။
အတူတူ စမ်းရေးကြည့်မယ်
CREATE UNIQUE INDEX users_email_lower_uidx
ON app.users (lower(email));
CREATE INDEX tutorials_catalog_cover_idx
ON app.tutorials (published_at DESC, tutorial_id DESC)
INCLUDE (title, slug)
WHERE is_published = true;
SELECT relname, indexrelname, idx_scan
FROM pg_stat_user_indexes
WHERE schemaname = 'app';Case-insensitive uniqueness နှင့် catalog covering index ရမည်။၅ မိနစ် စမ်းကြည့်
JSONB tag containment၊ event date range နှင့် huge append-only log အတွက် index type သုံးမျိုးရွေးပါ။
သတိလေးတစ်ချက်
`idx_scan = 0` ကိုမြင်ပြီးချက်ချင်း index မဖျက်ပါနှင့်—statistics reset၊ rare critical query နှင့် replica usage ကိုစစ်ပါ။
PostgreSQL — Index Types — PostgreSQL Global Development Group