Performa database adalah salah satu faktor paling penting dalam pengembangan API. API yang lambat hampir selalu disebabkan oleh query database yang tidak optimal. Pada artikel ini, kita akan membahas teknik umum yang digunakan developer profesional untuk mempercepat query SQL.
1. Gunakan Indexing pada Kolom Penting
Index membantu database menemukan data lebih cepat tanpa perlu melakukan full table scan.
ALTER TABLE users ADD INDEX idx_email (email);
Kolom yang sebaiknya diberi index:
- Kolom sering digunakan di WHERE
- Kolom relasi seperti user_id / category_id
- Kolom pencarian seperti email atau username
2. Batasi Data dengan LIMIT
Jangan pernah mengambil semua data tanpa limit, terutama untuk API:
SELECT * FROM users ORDER BY id DESC LIMIT 50;
Untuk aplikasi mobile, biasanya LIMIT 20–50 sudah lebih dari cukup.
3. Gunakan Prepared Statement untuk Kecepatan & Keamanan
Prepared statement lebih cepat karena query dipre-kompilasi dan sangat aman dari SQL Injection.
// Contoh prepared statement PHP Native
$stmt = $db->prepare("SELECT * FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
4. Hindari SELECT *
Jangan ambil semua kolom jika hanya butuh sebagian. Ini mempercepat query dan menghemat bandwidth API.
SELECT id, name, email FROM users WHERE id = 10;
5. Optimalkan Relasi Menggunakan JOIN
JOIN sering lebih cepat daripada query terpisah karena database hanya melakukan pembacaan sekali.
SELECT p.title, c.category_name
FROM posts p
JOIN categories c ON p.category_id = c.id
WHERE p.user_id = 1;
6. Gunakan Caching untuk Query Berat
Gunakan Redis atau file-cache untuk menyimpan data yang jarang berubah.
// Menyimpan data ke file cache
file_put_contents("cache/users.json", json_encode($users));
7. Gunakan EXPLAIN untuk Menganalisa Query
EXPLAIN membantu melihat apakah query melakukan full table scan atau menggunakan index.
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';
Jika hasilnya menunjukkan "Using index", berarti query sudah optimal.
8. Kesimpulan
Dengan menerapkan indexing, prepared statement, caching, dan menghindari SELECT *, performa API bisa meningkat drastis. Optimasi database adalah investasi jangka panjang yang sangat penting untuk aplikasi skala kecil maupun besar.