Mô tả: Phân tích query execution plans và đề xuất tối ưu
Cho các queries sau, hãy:
1. Phân tích execution plan sử dụng EXPLAIN
2. Xác định vấn đề performance
3. Đề xuất indexes và query optimization
4. Viết lại queries để tối ưu performance
Code mẫu
-- Query 1: Tìm sản phẩm theo tên (case-insensitive)
SELECT * FROM products
WHERE LOWER(product_name) LIKE '%laptop%';
-- Query 2: Thống kê doanh thu theo category
SELECT c.category_name, SUM(oi.quantity * oi.unit_price) as total_revenue
FROM order_items oi
JOIN products p ON oi.product_id = p.product_id
JOIN categories c ON p.category_id = c.category_id
WHERE oi.created_at BETWEEN '2024-01-01' AND '2024-12-31'
GROUP BY c.category_name
ORDER BY total_revenue DESC;
-- Query 3: Tìm khách hàng có nhiều đơn hàng nhất
SELECT c.customer_id, c.name, COUNT(o.order_id) as order_count
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
WHERE o.order_date >= DATE_SUB(NOW(), INTERVAL 1 YEAR)
GROUP BY c.customer_id, c.name
HAVING COUNT(o.order_id) > 5
ORDER BY order_count DESC
LIMIT 10;