နားလည်ထားရမယ့် အချက်
Feature တစ်ခုကို table/query တစ်ခုတည်းနဲ့မပြီးဘဲ latency၊ freshness၊ index cost နဲ့ refresh ownership ကိုသတ်မှတ်ရပါတယ်။ Search API အတွက် rank+stable tie-breaker pagination၊ analytics အတွက် event table + rollup view တည်ဆောက်မယ်။ Exact product metric definition ကို SQL comment/documentation ထဲမှတ်တမ်းတင်ပါ။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Daily active learners၊ completions နဲ့ average completion percentage ကို materialized view ထဲသိမ်းပြီး scheduled refresh လုပ်မယ်။ Search query အတွက် explain plan၊ top queries evaluation set နဲ့ no-result rate ကိုစောင့်ကြည့်မယ်။
အတူတူ စမ်းရေးကြည့်မယ်
CREATE MATERIALIZED VIEW app.daily_learning_metrics AS
SELECT date_trunc('day', completed_at) AS day,
count(DISTINCT enrollment_id) AS active_learners,
count(*) AS lessons_completed
FROM app.lesson_progress
WHERE completed = true
GROUP BY 1;
CREATE UNIQUE INDEX daily_learning_metrics_day_uidx
ON app.daily_learning_metrics (day);
REFRESH MATERIALIZED VIEW CONCURRENTLY app.daily_learning_metrics;Dashboard အတွက် concurrently refresh လုပ်နိုင်သော daily metrics source ရမည်။၅ မိနစ် စမ်းကြည့်
Course တစ်ခုစီ weekly completions report ရေးပြီး timezone boundary ကိုဘယ်လိုသတ်မှတ်မလဲ document လုပ်ပါ။
သတိလေးတစ်ချက်
Metric name တူပေမယ့် timezone၊ bot/internal users နှင့် late data rule မတူရင် dashboard နှစ်ခုအဖြေကွာနိုင်ပါတယ်။
PostgreSQL — Materialized Views — PostgreSQL Global Development Group