Memahami Pro & Kontra Paradigma "Post" WordPress
Gambaran Umum
Video ini memulai chapter baru tentang custom database table — dimulai dengan pemahaman mendalam mengapa pendekatan custom post type kadang lambat dan kapan kita perlu custom table sendiri.
Perbandingan Kecepatan: Custom Post Type vs Custom Table
| Skenario | Custom Post Type | Custom Table |
|---|---|---|
| Query dasar (100 pet pertama) | ~0.2 detik | ~0.1 detik |
| Query dengan filter metadata (species=cat, favcolor=green) | ~1.2 detik | ~0.1 detik |
Kesimpulan: Untuk query berdasarkan metadata, custom table bisa ~10x lebih cepat.
Mengapa Custom Post Type Lambat untuk Metadata Query?
Struktur Database WordPress
Tabel wp_posts:
- Setiap pet = 1 row
- Hanya menyimpan data dasar: title, content, post_type, dll.
- Data custom (species, weight, color) tidak ada di sini
Tabel wp_postmeta:
- Setiap property custom = 1 row terpisah
- 1 pet dengan 6 property = 6 rows di post_meta
- 100.000 pet × 6 properties = 600.000 rows di post_meta!
Kenapa Lambat?
- Query dasar (100 pet pertama) → WordPress cukup cari di
wp_postsdimanapost_type = 'pet', lalu lookup post_meta berdasarkanpost_id(indexed, cepat) - Query metadata (species=dog) → WordPress harus scan tabel
wp_postmetayang sangat besar, cari rows dimanameta_key = 'species'DANmeta_value = 'dog'
Struktur Custom Table (Solusi)
Tabel: wp_pets
| id | pet_name | species | birth_year | pet_weight | fave_food | fave_hobby | fave_color |- Setiap pet = 1 row (bukan 6+ rows)
- Setiap property = 1 kolom langsung (bukan lookup ke tabel lain)
- Database langsung tahu di mana mencari data → jauh lebih cepat
Kapan Gunakan Custom Post Type vs Custom Table?
Gunakan Custom Post Type (9 dari 10 kasus):
- WordPress memberikan gratis: admin interface, REST API, permissions, CRUD operations
- Tidak perlu query berdasarkan metadata
- Jumlah post tidak terlalu besar (< beberapa ribu)
- Prototype/development lebih cepat
Gunakan Custom Table (1 dari 10 kasus):
Hanya jika KEDUA kondisi ini terpenuhi:
- Anda perlu query berdasarkan metadata (filter, search, sort)
- Anda mengantisipasi volume data yang besar (ribuan hingga ratusan ribu records)
Trade-off: Custom table = lebih cepat tapi kehilangan semua fitur "gratis" WordPress. Anda harus menulis sendiri SQL queries, admin interface, security, permissions, dll.
Setup Pet Adoption (Custom Post Type Version)
Download starter zip → aktifkan plugin → buat halaman baru dengan slug pet-adoption:
php
// Uncomment baris ini untuk generate pet secara random:
// add_action('admin_head', [$this, 'generatePets']);- Setiap refresh admin → generate 10 pet baru
- Bisa diubah ke angka lebih besar (hati-hati timeout di shared hosting)
- WordPress tidak dioptimasi untuk membuat 100.000 post sekaligus → bisa butuh 5-20 menit