Notion databases can become slow to load and scroll through when they contain thousands of rows. The rendering engine must process every visible row even if you only need to see the most recent 20 entries. This lag affects filtered views, gallery views, and linked database views equally. The Limit operator in Notion’s database formulas and rollups restricts the number of rows the view attempts to render. This article explains how to apply the Limit operator to reduce rendering load and speed up your database views.
Key Takeaways: How to Use the Limit Operator to Speed Up Notion Database Views
- Database view property > Filter > Limit: Caps the number of rows the view loads to a fixed number like 50 or 100.
- Formula property with slice() and limit: Extracts a subset of rows from a rollup or relation before the view renders them.
- Linked database view > Limit: Prevents a linked view from pulling every row from the source database.
How the Limit Operator Reduces Rendering Load
Notion renders every row in a database view that matches the current filter and sort conditions. When a database has 10,000 rows and a filter returns 4,000 matching rows, the view attempts to load all 4,000 rows into the browser DOM. This consumes memory and CPU, especially on gallery or board views that render card previews for each row. The Limit operator tells Notion to stop loading rows after a specified number. The view displays only that many rows, and any rows beyond the limit are not fetched from the database at all. This reduces the rendering workload to a fixed ceiling regardless of how large the underlying database grows.
The Limit operator is not a formula function in the traditional sense. It is a property of the view itself and of certain formula functions that return arrays. When you set a limit on a view, Notion applies the limit at the query level — the server returns only the limited number of rows. When you use a formula like slice() with a limit argument, Notion first fetches the full array from the rollup or relation and then truncates it. For very large arrays, the formula-based limit still requires fetching all rows before truncation. Therefore, the view-level limit is more efficient than the formula-level limit for performance optimization.
Prerequisites for Using the Limit Operator
You need edit permissions on the database to change view settings. The Limit option is available on all view types: table, board, gallery, list, calendar, and timeline. For formula-based limits, you need a rollup or relation property that returns an array. The Limit operator does not work on databases that are not connected to a workspace — it only applies to databases stored in a Notion workspace.
Steps to Set a View-Level Limit on a Notion Database
- Open the database view you want to optimize
Navigate to the page containing the database. Click on the view tab at the top of the database. If you have multiple views, select the one that loads slowly. - Open the view properties menu
Click the ellipsis icon (three dots) in the top-right corner of the database view. A dropdown menu appears. - Select “Layout” or “View settings”
The exact label depends on your view type. For a table view, the option is “Layout.” For a gallery view, it is “View settings.” Click it to open the properties panel. - Locate the “Limit” field
Scroll down in the properties panel until you see the section labeled “Limit.” This field is often near the “Sort” and “Filter” sections. It may be labeled “Rows per page” in some view types. - Enter the maximum number of rows to display
Type a number between 1 and 1000. Notion enforces a hard cap of 1000 rows per view. For most optimization needs, a limit of 50 or 100 is sufficient. The view will now load only that many rows. - Click “Done” or close the properties panel
The view re-renders with the limit applied. Scroll to the bottom of the view — you will see a “Show more” button if there are additional rows beyond the limit. Clicking it loads the next batch of rows up to the same limit.
Setting a Limit on a Linked Database View
- Click the linked database block to select it
A linked database view is a block that references a source database. Click anywhere on the block to activate it. - Click the ellipsis icon on the linked database block
This opens the block menu. Select “Properties” or “View settings” depending on your Notion version. - Set the Limit field in the same way as a regular view
The Limit field appears in the same properties panel. Enter a number and close the panel. The linked view will now load only the limited rows from the source database.
Common Issues When Using the Limit Operator
Limit Does Not Reduce Load Time for Filtered Views
If you have a filter that returns 5,000 rows and you set a limit of 100, the view still processes the filter across all 5,000 rows before applying the limit. The limit reduces rendering but not filtering time. To reduce filtering time, add a more restrictive filter first, then apply the limit. For example, filter by a date range that returns only 200 rows, then set a limit of 50.
Limit on a Board View Shows Only One Column
In a board view, the limit applies to the total number of cards displayed across all columns. If you set a limit of 50 and have 10 columns, each column shows at most 5 cards. To avoid this, set the limit to a higher number like 500, or use a filter to reduce the number of cards per column before applying the limit.
Formula-Based Limit Still Causes Lag
Using slice(prop("Related Items"), 0, 10) in a formula still fetches the entire array from the relation before slicing. If the relation contains 10,000 items, the fetch still happens. Replace the formula-based limit with a view-level limit whenever possible. Use formula limits only when you need to display a subset within a single cell, such as in a rollup that shows the first 5 item names.
View-Level Limit vs Formula-Based Limit: Performance Comparison
| Item | View-Level Limit | Formula-Based Limit |
|---|---|---|
| Where the limit is applied | At the database query level by the server | In the browser after fetching all rows |
| Rows fetched from server | Only the limited number of rows | All matching rows regardless of limit |
| Performance benefit | High — reduces both network transfer and rendering | Low — reduces rendering but not network transfer |
| Available on all view types | Yes (table, board, gallery, list, calendar, timeline) | Only on table and board views where formulas are visible |
| Can be combined with filters | Yes — filter runs first, then limit applies | Yes — but filter still runs on all rows |
| Maximum limit | 1000 rows | No hard limit (depends on array size) |
Use the view-level limit for all performance optimization scenarios. Reserve the formula-based limit for cases where you need to display a truncated list inside a formula cell, such as showing the first 3 tags from a multi-select property.
You can now apply a view-level limit to any Notion database view to reduce rendering lag and improve load times. Start by setting a limit of 100 on your slowest gallery or board view. For linked database views, apply the limit directly on the linked block to prevent the source database from being fully fetched. An advanced tip: combine a view-level limit with a sort by date descending so that the limited rows show the most recent entries first, giving you the best performance-to-usefulness ratio.