Phân tích và Tối ưu Query Performance
Lập trìnhPhân tích query execution plans và đề xuất tối ưu
Hướng dẫn
Lời giải
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;