DEV Community

Cover image for Why Does "Load More" Feel Slow? Optimize It with Keyset Pagination
Shreyans Padmani
Shreyans Padmani

Posted on

Why Does "Load More" Feel Slow? Optimize It with Keyset Pagination

If your website uses a "Load More" button to show more items, you might notice it gets slower over time. This happens because the traditional way of loading more data isn't very efficient. Let's explore a better way to do it: Keyset Pagination.

Why Traditional Pagination is Slow

Many developers use OFFSET-based queries to load more data. Here’s an example:

SELECT * FROM products ORDER BY created_at DESC OFFSET 500 LIMIT 20;
Enter fullscreen mode Exit fullscreen mode

This method has some big problems:

Slow performance: The database has to scan and skip a lot of rows before getting the next set.

Inconsistent data: If items are added or deleted, users may see duplicates or missing items.

The Better Solution: Keyset Pagination

Keyset pagination (also called cursor-based pagination) fixes these issues. Instead of skipping rows, it remembers the last item and uses it to get the next batch.

Example of Keyset Pagination

SELECT * FROM products WHERE created_at < '2024-02-22 10:00:00' ORDER BY created_at DESC LIMIT 20;
Enter fullscreen mode Exit fullscreen mode

Why Keyset Pagination is Better

✅ Faster queries: The database doesn’t have to scan skipped rows.
✅ No missing or duplicate data: It loads records based on the last seen item.
✅ Great for infinite scrolling: Works smoothly for social media feeds, chat apps, and product listings.

When to Use Keyset Pagination

This method is best for:

Social media feeds (Twitter, Facebook, LinkedIn)

Online stores (product lists)

Messaging apps

Transaction history

Downsides of Keyset Pagination

⚠ Needs an indexed column (like an ID or timestamp)
⚠ Not useful for jumping to specific pages (like "Go to Page 10")

Final Thoughts

If your app uses infinite scrolling or deals with large amounts of data, keyset pagination is a smarter choice than OFFSET-based pagination. It’s faster, more reliable, and ensures a smooth experience for users.

Would you consider using keyset pagination in your projects? Let’s discuss in the comments!

Top comments (0)