Quay lại danh sách case study
Tối ưu câu lệnh truy vấn Database chậm
Cải thiện tốc độ phản hồi API cho hệ thống báo cáo dữ liệu lớn.
Bối cảnh
API trả về báo cáo tài chính mất hơn 10 giây để phản hồi, gây bức xúc cho người dùng doanh nghiệp.
Vấn đề cần xử lý
Câu lệnh truy vấn SQL phức tạp, thiếu index và thực hiện join trên các bảng hàng triệu dòng.
Hướng xử lý đề xuất
Tối ưu hóa câu lệnh SQL, bổ sung composite index thích hợp và xây dựng bảng tổng hợp định kỳ bằng background job.
Câu trả lời mẫu khi phỏng vấn
Tôi sử dụng câu lệnh EXPLAIN ANALYZE để phân tích kế hoạch thực thi truy vấn của PostgreSQL. Sau đó, tôi bổ sung index cho các cột điều kiện tìm kiếm thường xuyên và chuyển đổi việc tính toán báo cáo thời gian thực sang cơ chế pre-calculate lưu vào bảng cache chạy ngầm mỗi đêm.
Trade-off
Dữ liệu báo cáo trong ngày có thể có độ trễ nhỏ so với thời gian thực nhưng thời gian phản hồi API giảm xuống dưới 200ms.
Kết quả kỳ vọng
Thời gian phản hồi API giảm 98%, cải thiện trải nghiệm người dùng rõ rệt và giảm tải đáng kể cho cụm database.
Bài học khi trả lời phỏng vấn
Việc tối ưu database phải bắt đầu từ việc phân tích Execution Plan thay vì đoán mò.