Personal Website
SQL

SQL Query Optimization Cheatsheet

SQL Query Optimization Cheatsheet

SQL
#sql #optimization #performance #database

Kumpulan pattern SQL query yang dioptimasi untuk performa database.

-- 1. Use specific columns instead of SELECT *
SELECT id, name, email FROM users WHERE active = 1;

-- 2. Use EXISTS instead of IN for subqueries
SELECT * FROM orders o
WHERE EXISTS (SELECT 1 FROM users u WHERE u.id = o.user_id AND u.active = 1);

-- 3. Pagination with cursor (faster than OFFSET for large tables)
SELECT * FROM posts
WHERE id > :last_id
ORDER BY id ASC
LIMIT 20;

-- 4. Composite index usage (order matters!)
CREATE INDEX idx_posts_user_date ON posts (user_id, created_at DESC);

-- 5. Avoid N+1: use JOIN instead of loop queries
SELECT p.*, u.name as author_name
FROM posts p
JOIN users u ON u.id = p.user_id
WHERE p.published = 1
ORDER BY p.created_at DESC
LIMIT 10;

-- 6. Count with condition (no subquery needed)
SELECT
  COUNT(*) as total,
  COUNT(CASE WHEN status = 'active' THEN 1 END) as active_count,
  COUNT(CASE WHEN status = 'inactive' THEN 1 END) as inactive_count
FROM subscriptions;

-- 7. Upsert (INSERT or UPDATE)
INSERT INTO settings (key, value) VALUES ('theme', 'dark')
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value;
116 views 12 copies 14 jam yang lalu
Chat via WhatsApp
Tidak ada lagu