Understanding Limit/Offset Pagination

The take and skip parameters implement traditional limit/offset pagination. This method allows you to control the number of records returned and the starting point of the result set.

  • take defines how many records to return.
  • skip defines how many records to skip before starting the result set.
  • Commonly used for paginated lists where users navigate by page number (e.g., page 2 = skip: 10, take: 10).
  • May be less performant for large datasets due to skipping rows internally in SQL.

Example Usage: Limit/Offset Pagination

use Lib\Prisma\Classes\Prisma;

$prisma = Prisma::getInstance();
$users = $prisma->user->findMany([
    'orderBy' => [
        'name' => 'asc'
    ],
    'skip' => 10,
    'take' => 10
]);

echo "<pre>";
print_r($users);
echo "</pre>";

Best Practices

  • Use for small or medium-sized datasets where page jumps are frequent.
  • Combine with orderBy for consistent result ordering across pages.
  • For large datasets or infinite scrolling, prefer cursor-based pagination to avoid performance bottlenecks.