Subquery vs Temp Table – Ưu nhược điểm
Khi viết truy vấn phức tạp, bạn có hai lựa chọn: subquery (truy vấn lồng) hoặc temp table (bảng tạm). Hiểu rõ ưu – nhược điểm của từng cách sẽ giúp bạn tối ưu hiệu năng và bảo trì dễ dàng.
Nội dung bài viết
1. Subquery là gì? Temp Table là gì?
- Subquery: Một câu truy vấn nằm trong SELECT, FROM, hoặc WHERE của truy vấn khác.
• Temp Table: Một bảng tạm lưu trong bộ nhớ hoặc đĩa, có thể JOIN nhiều lần.
Ví dụ subquery:
SELECT customer_name,
(SELECT SUM(total_amount)
FROM orders o
WHERE o.customer_id = c.id) AS revenue
FROM customers c;
Ví dụ temp table:
CREATE TEMP TABLE sales_2025 AS
SELECT customer_id, SUM(total_amount) AS revenue
FROM orders
WHERE order_date BETWEEN '2025-01-01' AND '2025-12-31'
GROUP BY customer_id;
SELECT c.customer_name, s.revenue
FROM customers c
LEFT JOIN sales_2025 s ON c.id = s.customer_id;
2. Ưu – nhược điểm
✅ Subquery:
• Gọn gàng, không cần tạo bảng tạm.
• Thích hợp khi chỉ dùng một lần.
❌ Khó debug khi lồng nhiều cấp, hiệu năng có thể chậm.
✅ Temp Table:
• Dễ debug (có thể SELECT riêng).
• JOIN nhiều lần hiệu quả.
❌ Tốn I/O, cần xóa bảng tạm sau khi dùng.
3. Giá trị mang lại
🎓 Học viên: Hiểu khi nào chọn subquery, khi nào chọn temp table.
🏢 Doanh nghiệp: Truy vấn dễ mở rộng, giảm thời gian chạy khi xử lý dữ liệu lớn.
4. Điều kiện áp dụng tốt
- Subquery cho logic nhỏ, một lần sử dụng.
• Temp table khi cần join nhiều lần, hoặc muốn lưu kết quả trung gian để kiểm tra.
• Luôn kiểm tra execution plan để tránh quét bảng nhiều lần không cần thiết.
5. Kết luận
Không có lựa chọn “chuẩn” cho mọi tình huống – hãy chọn công cụ phù hợp với mục tiêu: đơn giản → subquery, tái sử dụng & dễ debug → temp table.
🎓 Khóa học SQL tại MCI Academy
• So sánh hiệu năng subquery vs temp table với dataset thật.
• Thực hành refactor truy vấn “bún” thành pipeline rõ ràng.
📞 Hotline: 0352.433.233
📧 Email: cskh@mcivietnam.com

Các khóa học
- Mastering AWS : From Basics to Applications Specialized
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- AI & DASHBOARD – CHỈ 990K Hot
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Business Analyst Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường