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

Simplify Your Laravel Workflow with Laravel Pint

Simplify Your Laravel Workflow with Laravel Pint

Laravel Pint là gì? Laravel Pint là một công cụ sửa đổi mã nguồn của bạn để mã nguồn của bạn tuân thủ theo các tiêu chuẩn. Nói một cách khác, Laravel Pint sẽ quét toàn bộ mã nguồn của bạn, phát...

Csv import with Validation for Laravel

Csv import with Validation for Laravel

Trong một bài viết lúc trước, mình đã chia sẻ đến các bạn cách xây dựng một service import và export CSV sử dụng Facades, nếu có bạn nào không biết hoặc đã quên các bạn có thể tham khảo lại bài viết t...

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ư...

Laravel Logging Of Database Queries

Laravel Logging Of Database Queries

Laravel là một Framework PHP mạnh mẽ và linh hoạt, giúp cho việc phát triển ứng dụng trở nên đơn giản và dễ dàng hơn. Một trong những tính năng hữu ích của Laravel là khả năng ghi nhật ký truy vấn...

Laravel  Scout Full Text Search with Algolia

Laravel Scout Full Text Search with Algolia

Laravel Scout cung cấp một giải pháp đơn giản, dựa trên trình điều khiển để thêm tìm kiếm Full Text vào các mô hình Eloquent của bạn. Khi sử dụng Eloquent, Scout sẽ tự động giữ chỉ mục tìm kiếm của bạ...

Laravel Artisan Console

Laravel Artisan Console

Ngoài các lệnh command mặc định của Laravel được cung cấp bởi Artisan, có rất nhiều tác vụ trong ứng dụng Laravel của bạn có thể được xử lý rất tốt bằng các lệnh command này. Nhưng đôi khi có nhiều tá...

Laravel User Authentication

Laravel User Authentication

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn xây dựng chức năng đăng nhập trong Laravel. Công bằng mà nói thì bạn có thể sử dụng Laravel UI hoặc JetStream để tự động tạo ra chức năng đăng nhập trong Lara...

Implementing Private User Folders with elFinder in Laravel

Implementing Private User Folders with elFinder in Laravel

elFinder elFinder là một trình quản lý tập tin mã nguồn mở dành cho web, được viết bằng JavaScript sử dụng jQuery UI. elFinder được phát triển dựa trên cảm hứng từ sự tiện lợi và đơn giản của chư...

Laravel CKEditor 5 Image Upload

Laravel CKEditor 5 Image Upload

CKEditor 5CKEditor 5 là một trình soạn thảo văn bản phong phú JavaScript với nhiều tính năng và khả năng tùy chỉnh. CKEditor 5 có kiến trúc MVC hiện đại, mô hình dữ liệu tùy chỉnh và DOM ảo, mang...

ManhDanBlogs