Single Intermediate 14 Maret 2024 6 min
PostgreSQL Indexing Tips
Quick tips for optimizing PostgreSQL database performance with proper indexing
PostgreSQL Indexing Tips
Indexing adalah cara tercepat untuk meningkatkan performance query PostgreSQL.
When to Use Index
Index cocok untuk:
- Columns yang sering digunakan di WHERE clause
- Columns yang sering di JOIN
- Columns yang sering di ORDER BY
Basic Index
CREATE INDEX idx_users_email ON users(email);
Composite Index
Untuk multiple columns:
CREATE INDEX idx_orders_user_date
ON orders(user_id, created_at);
Partial Index
Index subset dari data:
CREATE INDEX idx_active_users
ON users(email)
WHERE status = 'active';
Covering Index
Index yang mencakup semua columns yang dibutuhkan:
CREATE INDEX idx_orders_covering
ON orders(user_id, created_at)
INCLUDE (total, status);
Check Index Usage
-- Check index usage
SELECT
schemaname,
tablename,
indexname,
idx_scan,
idx_tup_read
FROM pg_stat_user_indexes
ORDER BY idx_scan DESC;
When NOT to Use Index
- Tables dengan sedikit data
- Columns yang sering di-update
- Columns dengan cardinality rendah (boolean, gender)
Tips
- Jangan terlalu banyak index (overhead pada write)
- Hapus index yang tidak digunakan
- Gunakan EXPLAIN ANALYZE untuk cek query plan