diff --git a/materialized_view_postgresql.MD b/materialized_view_postgresql.MD index 99e3eca..33a7581 100644 --- a/materialized_view_postgresql.MD +++ b/materialized_view_postgresql.MD @@ -1,3 +1,79 @@ +Ya, **PostgreSQL memiliki fitur *Materialized View***. + +### Apa itu Materialized View di PostgreSQL? + +**Materialized View** adalah objek database yang **menyimpan hasil query secara fisik** (seperti tabel), bukan menjalankan ulang query setiap kali dipanggil seperti *VIEW* biasa. + +### Perbedaan VIEW vs MATERIALIZED VIEW + +| Aspek | VIEW | MATERIALIZED VIEW | +| ---------------- | -------------------------- | ----------------- | +| Penyimpanan data | Tidak disimpan | Disimpan fisik | +| Kecepatan query | Lebih lambat (query ulang) | Lebih cepat | +| Update otomatis | Selalu real-time | ❌ Tidak otomatis | +| Perlu refresh | ❌ | ✅ Ya | + +--- + +### Contoh penggunaan + +```sql +CREATE MATERIALIZED VIEW laporan_penjualan AS +SELECT + tanggal, + SUM(total) AS total_penjualan +FROM penjualan +GROUP BY tanggal; +``` + +Mengambil data: + +```sql +SELECT * FROM laporan_penjualan; +``` + +--- + +### Refresh data (WAJIB agar update) + +```sql +REFRESH MATERIALIZED VIEW laporan_penjualan; +``` + +Tanpa mengunci (PostgreSQL ≥ 9.4, wajib ada index UNIQUE): + +```sql +REFRESH MATERIALIZED VIEW CONCURRENTLY laporan_penjualan; +``` + +--- + +### Kapan sebaiknya pakai Materialized View? + +✅ Query berat (JOIN besar, agregasi) +✅ Data laporan / dashboard +✅ Data tidak harus real-time +❌ Data yang sering berubah dan harus langsung update + +--- + +### Kekurangan + +* Data bisa **tidak up-to-date** +* Perlu mekanisme **refresh manual / cron** +* Memakai **storage tambahan** + +--- + +Kalau mau, saya bisa jelaskan: + +* 🔁 cara auto-refresh pakai **cron / pg_cron** +* ⚡ strategi performa (index materialized view) +* 🆚 kapan pilih materialized view vs table biasa + +Tinggal bilang mau fokus ke yang mana. + + Berikut **strategi performa Materialized View di PostgreSQL (fokus INDEX & refresh)** yang sudah terbukti efektif untuk kasus laporan & query berat. ---