Skip to main content

SQL Query Optimization – Các kỹ thuật cải thiện tốc độ truy vấn

· 3 min read

🚀 1. Tại sao tối ưu SQL quan trọng?

Việc tối ưu truy vấn SQL giúp: ✅ Giảm thời gian thực thi truy vấn
✅ Tiết kiệm tài nguyên máy chủ
✅ Tăng khả năng mở rộng hệ thống
✅ Cải thiện trải nghiệm người dùng

Dưới đây là 10 kỹ thuật giúp bạn viết truy vấn SQL nhanh và hiệu quả hơn.

🔥 2. 10 kỹ thuật tối ưu SQL

🎯 1. Chọn đúng loại Index

Index giúp tăng tốc độ truy vấn bằng cách giảm số lượng bản ghi cần quét.

CREATE INDEX idx_email ON users(email);

🚀 2. Tránh SELECT *

Tránh sử dụng SELECT * để tối ưu hiệu suất.

SELECT name, email FROM users WHERE status = 'active';

🔄 3. Sử dụng JOIN hiệu quả

Hạn chế dùng CROSS JOIN, thay vào đó hãy sử dụng INNER JOIN hoặc LEFT JOIN.

SELECT orders.id, customers.name 
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id;

🛠 4. Tận dụng Query Execution Plan

Sử dụng EXPLAIN hoặc EXPLAIN ANALYZE để kiểm tra hiệu suất truy vấn.

EXPLAIN ANALYZE SELECT * FROM orders WHERE status = 'shipped';

📊 5. Hạn chế sử dụng DISTINCT nếu không cần thiết

DISTINCT có thể làm tăng thời gian xử lý do phải loại bỏ bản ghi trùng lặp.

SELECT email FROM users GROUP BY email;

📌 6. Tối ưu WHERE và GROUP BY

Sắp xếp điều kiện trong WHERE theo thứ tự giảm dần độ lọc dữ liệu.

SELECT * FROM orders WHERE status = 'completed' AND amount > 1000;

⚡ 7. Hạn chế sử dụng OR trong điều kiện

Sử dụng UNION ALL thay vì OR.

SELECT * FROM users WHERE status = 'active' 
UNION ALL
SELECT * FROM users WHERE role = 'admin';

🎯 8. Sử dụng LIMIT để giới hạn dữ liệu

Hạn chế số lượng bản ghi trả về bằng LIMIT.

SELECT * FROM orders ORDER BY created_at DESC LIMIT 10;

🚀 9. Tránh truy vấn lồng nhau không cần thiết

Tránh sử dụng quá nhiều truy vấn lồng nhau (SUBQUERY).

SELECT u.name, o.total 
FROM users u
JOIN orders o ON u.id = o.user_id;

⚡ 10. Tận dụng caching

Nếu dữ liệu không thay đổi thường xuyên, hãy sử dụng caching để giảm tải truy vấn SQL.

✅ 3. Kết luận

Áp dụng những kỹ thuật trên sẽ giúp bạn viết truy vấn SQL hiệu quả hơn! 🚀

📚 4. Tài nguyên tham khảo

🔹 MySQL Query Optimization
🔹 PostgreSQL Performance Tips
🔹 SQL Server Query Optimization