Quay lại danh sách case study
Tối ưu hiệu năng API truy vấn dữ liệu lớn
Cải thiện tốc độ phản hồi của API danh sách sản phẩm bằng cách phân trang và chọn lọc trường dữ liệu.
Bối cảnh
Một API trả về danh sách sản phẩm trên trang thương mại điện tử mất tới 5 giây để phản hồi do bảng dữ liệu có hàng trăm ngàn bản ghi.
Vấn đề cần xử lý
API thực hiện câu lệnh lấy toàn bộ bảng dữ liệu mà không phân trang, đồng thời trả về quá nhiều thông tin không cần thiết qua mạng.
Hướng xử lý đề xuất
Áp dụng kỹ thuật phân trang dạng giới hạn và bỏ qua, đồng thời chỉ chọn các trường dữ liệu thực sự cần thiết để hiển thị trên giao diện.
Câu trả lời mẫu khi phỏng vấn
Em đã đề xuất áp dụng phân trang limit và skip cho API, kết hợp với việc chọn lọc các trường cần thiết qua câu lệnh select để giảm tải lượng dữ liệu truyền qua mạng.
Trade-off
Phân trang dạng skip có thể chậm đi khi dữ liệu quá lớn, về lâu dài cần chuyển sang phân trang dạng con trỏ cursor-based pagination.
Kết quả kỳ vọng
Thời gian phản hồi của API giảm từ 5 giây xuống dưới 200 mili-giây, trải nghiệm người dùng mượt mà hơn rất nhiều.
Bài học khi trả lời phỏng vấn
Không bao giờ trả về toàn bộ dữ liệu lớn trong một lần gọi API, luôn áp dụng phân trang và giới hạn dữ liệu.