Laravel Fast Paginate là gì?
Laravel Fast Paginate là một macro nhanh về phân trang offset/limit cho Laravel. Nó được sử dụng để thay thể paginate trong Laravel.
Package này sử dụng phương pháp SQL tương tự như "Deferred Joins" để đạt được Speedup.
Deferred Joins là một kỹ thuật trì hoãn quyền truy cập vào một cột được yêu cầu cho đến khi offset và limit được áp dụng.
Cài đặt Laravel Fast Paginate
Package hỗ trợ Laravel 8 và 9. (Laravel 8 phải từ 8.37 trở lên)
Bạn cài đặt Package Laravel Fast Paginate thông qua lệnh composer sau:
composer require hammerstone/fast-paginate
Cách sử dụng Laravel Fast Paginate
Bất cứ nơi nào bạn sẽ sử dụng cú pháp sau:
Model::query()->paginate();
Bạn có thể sử dụng phương pháp Laravel Fast Paginate để thay thế như sau:
Model::query()->fastPaginate();
Laravel Fast Paginate cũng hỗ trợ Relationships như sau:
User::first()->posts()->fastPaginate();
Trong README.md của Laravel Fast Paginate có nói rằng:
Không chắc rằng phương pháp này sẽ hoạt động kém hơn phương pháp truyền thống offset/limit. Mặc dù có thể, vì vậy hãy đảm bảo kiểm tra dữ liệu của bạn !!!
Dưới đây là một kết quả được cộng đồng sử dụng cho đến nay:
Trước khi sử dụng | Sau khi sử dụng | Link |
30s | 250ms | |
28s | 2s | |
Nhanh gấp 7.5 lần | ||
1.1s | 0.1s | |
20s | 2s |
Nếu bạn muốn tìm hiểu thêm về kỹ thuật được áp dụng trong package Laravel Fast Paginate, bạn hãy xem Efficient Pagination Using Deferred Joins của Aaron Francis.
Tài liệu tham khảo:
https://github.com/hammerstonedev/fast-paginate
https://aaronfrancis.com/2022/efficient-pagination-using-deferred-joins