Mampu menulis query dan mampu mengoperasikan database adalah dua keterampilan yang berbeda. Tugas operasional — memilih index yang tepat, membaca query plan, memahami isolation level, menjalankan backup, mengatur replikasi — menuntut dokumentasi dengan sudut pandang administrasi, bukan sekadar referensi sintaks. Chapter ini mengumpulkan halaman-halaman operasional resmi untuk tiga engine yang dipakai course ini, ditambah PgBouncer untuk connection pooling. Kolom tingkat di sini mengukur kedalaman bahasan, bukan tingkat kesulitan membacanya.

PostgreSQL: Struktur Data dan Performa Query #

Empat halaman berikut membentuk rangkaian kerja tuning yang utuh: rancang skema, buat index, baca rencana eksekusi, lalu terapkan pola penulisan query yang ramah terhadap planner.

SumberUntuk apaTingkat
Schema DefinitionTabel, tipe data, constraint, dan dasar partitioningpemula
IndexesJenis index (B-tree, GIN, dan lainnya) serta kapan masing-masing dipakaimenengah
Using EXPLAINMembaca rencana eksekusi EXPLAIN dan EXPLAIN ANALYZEmenengah
Performance TipsKebiasaan menulis query yang memudahkan kerja plannermenengah

PostgreSQL: Transaksi dan Konkurensi #

Bagian ini menjelaskan bagaimana PostgreSQL menjaga konsistensi ketika banyak transaksi berjalan bersamaan: MVCC sebagai mekanisme dasarnya, lalu isolation level sebagai kebijakan yang bisa kita pilih.

SumberUntuk apaTingkat
Concurrency Control dan MVCCLocking, MVCC, resolusi konflik, dan proses vacuummahir
Transaction IsolationPerbandingan perilaku Read Committed hingga Serializablemahir
Routine VacuumingPengelolaan VACUUM dan ANALYZE secara rutinmenengah

PostgreSQL: Ketersediaan, Pemulihan, dan Monitoring #

Pipeline produksi menuntut rencana pemulihan yang jelas. Halaman-halaman berikut membahas arsitektur standby, mekanisme backup, statistik aktivitas yang perlu dipantau, hingga pengaturan server yang menentukan perilaku semuanya.

SumberUntuk apaTingkat
High AvailabilityArsitektur standby, log shipping, switchover, dan failovermahir
Logical ReplicationReplikasi tingkat tabel untuk publikasi dan konsumsi selektifmahir
Write-Ahead LogBagaimana WAL menjamin durabilitas dan mendukung pemulihanmahir
Backup and Restorepg_dump, pg_basebackup, WAL archiving, dan point-in-time recoverymenengah
Monitoring Database ActivityStatistik aktivitas, progress reporting, dan katalog sistemmenengah
Server ConfigurationParameter postgresql.conf: memori, koneksi, WALmahir
pgbenchAlat benchmark bawaan untuk mengukur kapasitas transaksimahir

SQLite dan DuckDB #

SQLite dan DuckDB punya model operasional yang jauh lebih sederhana karena keduanya berjalan tertanam di dalam aplikasi: tanpa server terpisah, tanpa proses daemon, dan seluruh data berada di satu berkas. Konsekuensinya, topik operasionalnya bergeser dari administrasi server ke pengaturan mode berkas dan pemeliharaan berkala. Dokumentasi berikut menutup kebutuhan praktis keduanya.

SumberUntuk apaTingkat
Dokumentasi SQLiteIndeks induk seluruh dokumentasi SQLitepemula
Appropriate Uses for SQLiteBatas wajar pemakaian SQLite dibanding client/server databasepemula
PRAGMA StatementsPengaturan runtime: journal mode, foreign keys, wal, dan sejenisnyamenengah
Write-Ahead LoggingMode WAL: pembaca dan penulis bersamaan tanpa saling menguncimenengah
VACUUMMemadatkan berkas database dan membangun ulang strukturnyamenengah
Backup APIMenyalin database secara online tanpa menghentikan aplikasimenengah
Query Optimizer OverviewCara SQLite memilih index dan urutan joinmahir
Query PlannerPenjelasan bertahap cara planner menyusun rencana eksekusimenengah
Dokumentasi DuckDBKonfigurasi, performa, dan panduan praktis DuckDBpemula
Benchmarks DuckDBHasil benchmark resmi untuk menyusun ekspektasi performamenengah

Connection Pooling dengan PgBouncer #

Setiap koneksi PostgreSQL memakan satu proses server, sehingga aplikasi dengan banyak client memakai connection pooler agar koneksi dipakai bergantian. PgBouncer adalah pooler yang paling umum di ekosistem PostgreSQL, dan dokumentasi resminya menjelaskan tiga mode pooling — session, transaction, statement — beserta konsekuensi masing-masing terhadap fitur yang menyimpan state di sesi.

SumberUntuk apaTingkat
Dokumentasi PgBouncerInstalasi, konfigurasi pool, dan pemilihan mode poolingmahir

Sebelum memilih strategi backup, empat pertanyaan berikut menentukan halaman mana yang perlu dibaca mendalam:

  • Seberapa banyak data yang boleh hilang saat gangguan terjadi (RPO) — makin kecil toleransinya, makin jauh kita bergeser dari pg_dump menuju WAL archiving dan point-in-time recovery.
  • Berapa lama layanan boleh berhenti sampai data kembali tersedia (RTO) — menentukan pilihan antara pemulihan dari cadangan dan failover ke server standby.
  • Siapa yang menjalankan pemulihan — prosedur yang hanya dikuasai satu orang bukan prosedur pemulihan yang andal.
  • Seberapa sering pengujian pemulihan dijalankan — strategi backup yang tidak pernah diuji pemulihannya belum layak disebut strategi.

Urutan Bacaan Sebelum Naik ke Produksi #

Untuk pembaca yang baru sekali jalan mengoperasikan PostgreSQL, urutan bacaan berikut terbukti efisien — setiap tahap membangun kosakata untuk tahap berikutnya:

  1. Baca Schema Definition dan buat skema latihan sendiri dengan constraint yang realistis.
  2. Latih membaca rencana eksekusi di Using EXPLAIN dengan query agregasi sederhana.
  3. Pahami Transaction Isolation, lalu amati perbedaan anomali antar isolation level dengan dua sesi paralel.
  4. Pelajari Backup and Restore dan praktikkan pg_dump serta pemulihannya di lingkungan latihan.
  5. Tutup dengan Monitoring Database Activity untuk tahu metrik apa yang layak dipantau.
  6. Baca Logical Replication bila arsitektur memakai replikasi antar server.

Urutan ini bisa dibaca terbalik saat kebutuhan mendesak: buka halaman spesifik yang sedang dibutuhkan, lalu mundur ke halaman konsep untuk memahami konteks lengkapnya. Yang penting, setiap halaman resmi selalu dibuka dengan kesadaran penuh terhadap versi yang sedang dipakai.

Seluruh konsep di atas dibahas secara praktis di section Database dan Penyimpanan Data — mulai dari Indexing, Query Planning, dan Connection Pooling sampai Backup dan Recovery serta Replikasi Database — lalu diperdalam di section Optimasi dan Performa. Untuk pekerjaan transformasi data di atas database tersebut, kita lanjutkan ke Referensi ETL dan ELT.