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 Twitter
28s 2s Twitter
  Nhanh gấp 7.5 lần Twitter
1.1s 0.1s Twitter
20s 2s Twitter

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

CÓ THỂ BẠN QUAN TÂM

Integrating CKFinder with Amazon S3 in Laravel

Integrating CKFinder with Amazon S3 in Laravel

CKFinder 3 CKFinder 3 là trình quản lý tập tin được tích hợp với CKEditor 4 và CKEditor 5. Nó giúp bạn dễ dàng đưa các tập tin và hình ảnh vào nội dung của Editor một cách an toàn. Đây là một tín...

Laravel Validate Video Duration

Laravel Validate Video Duration

Đôi khi trong dự án, chúng ta cần xác định thời lượng video được phép upload lên server. Nhưng rất tiếc, Laravel không cung cấp validate xác định thời lượng video để chúng ta thực hiện được. Vì vậy, t...

Laravel Socialite Login With Github

Laravel Socialite Login With Github

GitHub GitHub là một nền tảng phát triển phần mềm trực tuyến. Nó được sử dụng để lưu trữ, theo dõi và cộng tác trong các dự án phần mềm. Nó giúp các nhà phát triển dễ dàng chia sẻ các tập tin mã...

How To Optimize Your Site With GZIP Compression

How To Optimize Your Site With GZIP Compression

GZIP là công nghệ nén thường được sử dụng để truyền dữ liệu một cách nhanh chóng qua Insternet. Hiện nay, GZIP là một tiêu chuẩn để nén các file trên trang web, đa số các website hiện nay hơn 99% sử d...

Document Laravel API With OpenAPI (Swagger)

Document Laravel API With OpenAPI (Swagger)

Swagger là gì? Swagger là một Ngôn ngữ mô tả giao diện để mô tả các API RESTful được thể hiện bằng JSON. Swagger được sử dụng cùng với một bộ công cụ phần mềm mã nguồn mở để thiết kế, xây dựng, l...

Laravel UI Custom Email Verification Template

Laravel UI Custom Email Verification Template

Nếu bạn đang dùng thư viện laravel/ui để làm các chức năng liên quan đến authentication, và trong dự án của bạn, bạn cần thay đổi template email verification thay vì sử dụng template email verificatio...

Laravel Middlewares

Laravel Middlewares

Middleware cung cấp một cơ chế thuận tiện để lọc các yêu cầu HTTP gửi đến ứng dụng bạn. Nó là một lớp trung gian nằm giữa request và controller. Bạn có thể thêm các xử lý logic trước khi gửi đến contr...

Integrating TinyMCE in Laravel 10 using Vite

Integrating TinyMCE in Laravel 10 using Vite

TinyMCE TinyMCE là một trình soạn thảo WYSIWYG được xây dựng trên nền tảng Javascript, được phát triển dưới dạng mã nguồn mở theo giấy phép MIT bởi Tiny Technologies Inc. TinyMCE cho phép ngư...

How to insert into a database at lightning speed?

How to insert into a database at lightning speed?

Trong quá trình thực hiện dự án cho công ty, một trong những yêu cầu đặt ra là import dữ liệu từ file CSV (chứa dữ liệu từ hệ thống cũ) vào cơ sở dữ liệu MySQL của hệ thống mới. Do sự thay đổi cấu...

ManhDanBlogs