Đang cập nhật người đăng

Đang cập nhật

time1 năm trước

Tối ưu hóa việc load nhiều dòng dữ liệu trong khung gợi ý khi tìm kiếm

Có mấy gợi ý về tối ưu bạn có thể thử thực hiện:
1. Phương án đầu tiền nghĩ đến khi thực hiện truy vấn chậm là cần phải đánh index cho cơ sở dữ liệu. Phần đánh index cũng cần phải lựa chọn một cách mềm dẻo các kiểu dữ liệu khác nhau.
2. Phương án hai là tối ưu hóa truy vấn. Do phần typeahead mặc định hiển thị 5 kết quả nên khi xây dựng truy vấn, chúng ta có thể giới hạn số lượng kết quả trả về giúp cho truy vấn khi thực hiện sẽ chạy nhanh hơn.
$customer = Customer::where(‘name’, ‘like’, ‘%’ . $request->get(‘q’) . ‘%’)->take(5)->get();
3. Ngoài ra chúng ta có thể chỉ thực hiện gợi ý khi người dùng gõ vào vài từ thông qua thiết lập minLength, ví dụ chúng ta nên thiết lập khi gõ từ 3-5 từ mới gợi ý như vậy khi tìm kiếm cũng giới hạn số lượng kết quả dẫn đến truy vấn nhanh hơn.

4. kỹ thuật cache đơn giản nhất là cache theo key value pair. 
ví dụ người dùng ký tự đầu tiên là A. sẽ bay vào đọc hết database những keywork bắt đầu bằng A và cache lại. lấy số lượng phần tử muốn hiện thị ra. sort theo kiểu gì đó nếu thích. 
người dùng gõ tiếp ký tự thứ 2 vd là X. thì chỉ cần tìm trong tập A đã cache lúc nãy là AX. tốc độ sẽ nhanh hơn rất nhiều so với việc đọc trực tiếp từ db. 

Post a project

To

Post a job