Lompat ke isi

Manajemen basis data Mippedia

Basis data adalah fondasi dari seluruh pengetahuan yang tersimpan di ekosistem Mippedia. Proyek ini menggunakan sistem manajemen basis data relasional (RDBMS) tingkat industri yang dikonfigurasi secara khusus oleh Rumi Haitami untuk menangani ribuan entri artikel, metadata multimedia, dan riwayat revisi yang kompleks.

Sistem ini memastikan bahwa setiap informasi yang disunting oleh kontributor tersimpan secara permanen, aman, dan dapat dipanggil kembali dalam hitungan milidetik melalui Portal Mippedia.

Infrastruktur MariaDB/MySQL

Mippedia mengandalkan MariaDB (sebuah fork performa tinggi dari MySQL) sebagai mesin utama basis data. Pemilihan ini didasarkan pada keandalannya dalam menangani beban baca (read-heavy) yang sangat tinggi.

Spesifikasi Mesin Database

  • Engine Version: MariaDB 10.11 (LTS Edition) atau MySQL 8.0+.
  • Storage Engine: InnoDB — Digunakan karena mendukung fitur ACID-compliant transactions, memastikan data tetap konsisten meskipun terjadi kegagalan sistem saat proses penulisan.
  • Karakter Set & Collation: `utf8mb4_unicode_ci`. Ini adalah standar tertinggi yang memungkinkan Mippedia menyimpan karakter dari seluruh bahasa di dunia (termasuk emoji, simbol musik, dan karakter sejarah khusus) tanpa risiko data korup.

Skema Distribusi Data (Database Sharding)

Untuk menjaga efisiensi dan mencegah "bottleneck" pada satu database besar, Mippedia Community menerapkan strategi pemisahan basis data secara logis berdasarkan fungsinya:

1. Core Content Database (`mippedia_id`)

Menampung seluruh tabel utama untuk Mippedia Bahasa Indonesia. Database ini memiliki volume data terbesar karena menyimpan teks lengkap artikel (blob storage) dan riwayat revisi sejak hari pertama proyek dimulai.

2. Global Extension Database (`mippedia_en`)

Basis data yang didedikasikan untuk Mippedia Bahasa Inggris. Meskipun terpisah, database ini tetap memiliki sinkronisasi metadata dengan database utama untuk menjaga konsistensi referensi silang.

3. Micro-Content Database (`mippedia_simple`)

Database yang dioptimalkan untuk kecepatan tinggi. Karena berisi versi ringkas, tabel di sini dirancang dengan indeks yang lebih ramping agar pemuatan data pada perangkat seluler menjadi instan.

4. Administrative Database (`mippedia_community`)

Terisolasi sepenuhnya dari database artikel. Berisi data administratif untuk `mippediacommunity.site`, log aktivitas pengelola, dan draf kebijakan internal.

Struktur Tabel Vital

MediaWiki menggunakan sistem tabel yang saling terkait. Beberapa tabel kunci yang dikelola di Mippedia antara lain:

  • Table `page`: Menyimpan daftar seluruh halaman, judul, dan status perlindungan halaman.
  • Table `revision`: Jantung dari sistem wiki; menyimpan jejak audit setiap perubahan yang dilakukan oleh kontributor.
  • Table `text`: Penyimpanan konten mentah (raw content) yang telah dikompresi untuk menghemat ruang penyimpanan server.
  • Table `categorylinks`: Mengelola hubungan hirarki antar topik, memungkinkan fitur kategori di Mippedia berjalan otomatis.

Protokol Optimasi dan Performa

Agar kueri (permintaan data) tidak melambat seiring bertambahnya jumlah artikel, Rumi Haitami menerapkan protokol berikut:

  1. Query Caching: Hasil dari kueri yang sering dipanggil disimpan di memori RAM, sehingga server tidak perlu menyisir hard drive berulang kali.
  2. Index Tuning: Penambahan indeks kustom pada kolom yang sering digunakan dalam pencarian di Portal Mippedia.
  3. Slow Query Logging: Sistem secara otomatis mencatat kueri yang memakan waktu lebih dari 0,5 detik untuk kemudian dianalisis dan diperbaiki oleh tim teknis.
  4. Maintenance Tasks: Eksekusi berkala skrip `runJobs.php` dan `cleanupTable.php` untuk membersihkan data sampah dan memperbaiki overhead pada tabel.

Integritas Relasional Antar-Bahasa

Mippedia menggunakan fitur Interwiki Links yang tersimpan di tabel basis data pusat. Hal ini memungkinkan sistem untuk mengetahui secara instan bahwa artikel "Musik" di Mippedia ID memiliki padanan "Music" di Mippedia EN dan "Musik (Ringkas)" di Mippedia Simple. Relasi ini dijaga ketat agar tidak terjadi tautan putus (broken links).

Pernyataan Privasi Data: Seluruh data di dalam basis data Mippedia dilindungi oleh sistem enkripsi ganda. Akses langsung ke level root basis data hanya dimiliki oleh Administrator Utama guna menjamin keamanan informasi pengguna.