Tăng tốc độ tìm kiếm nhanh hơn 10 lần bằng kỹ thuật phù hợp
(engineering.ab180.co)Đây là một trường hợp cải thiện dịch vụ tìm kiếm bằng cách áp dụng kỹ thuật vừa đủ, phù hợp với tình huống.
Nhận diện vấn đề
- Dịch vụ tìm kiếm ngày càng chậm
- Nhận ra vấn đề về độ phức tạp do sử dụng Join và regex cho tìm kiếm
Chiến lược giải quyết vấn đề
- Ban đầu đã cân nhắc Elasticsearch
- Có vấn đề về chi phí vì phải xử lý tính thời gian thực với DB chính và lượng lớn dữ liệu lưu trữ lâu dài
- Xây dựng bảng chuyên dụng cho tìm kiếm đã được đơn giản hóa và thiết kế truy vấn tìm kiếm
- Áp dụng MySQL Trigger để nạp dữ liệu
Kết quả
- Cải thiện truy vấn từ 3 phút xuống còn 2 giây
- Truyền tải giá trị cho khách hàng nhanh chóng bằng kỹ thuật không quá mức
2 bình luận
Có vẻ họ đã áp dụng phương pháp tạo nhiều bảng cho cùng một dữ liệu và phân chia mục đích sử dụng, vốn thường được dùng khi xây dựng các site quy mô lớn có lượng truy cập cao.
Đôi khi cũng tách thành hai phần như dành cho khách hàng và dành cho quản trị viên, còn đây là một trường hợp áp dụng rất tốt khi chỉ định riêng mục đích cho tìm kiếm.
Mình không rành về mảng DB nên khi đọc những bài chia sẻ thông tin kiểu này thấy vừa lạ vừa thú vị.