When a Notion database contains hundreds or thousands of entries, filtering and sorting can become noticeably slow. This lag happens because Notion must scan every row to find matching values. The Indexed property in Notion solves this by creating an internal lookup table that speeds up queries. This article explains what the Indexed property does, when to use it, and how to enable it step by step.
You will learn how to reduce load times on large databases and avoid common mistakes that degrade performance. The guide covers the exact steps to apply indexing to text, select, and multi-select properties. It also explains why indexing does not work on formula or rollup columns and what alternatives exist for those cases.
Key Takeaways: How Indexed Properties Speed Up Notion Databases
- Property menu > Edit property > Turn on Index: Enables indexing on a text, select, or multi-select column to accelerate filters and sorts.
- Database header > Filter or Sort: Queries using indexed columns run 2–5x faster on databases with over 1,000 rows.
- Rollup and Formula properties: Cannot be indexed directly; use a helper property with indexing instead.
What the Indexed Property Does in Notion
The Indexed property creates an internal data structure that maps each unique value in a column to the rows that contain it. When you filter or sort by an indexed column, Notion reads the map instead of scanning every row. This reduces query time from linear to near-constant for most operations.
Indexing is available only on three property types: Text, Select, and Multi-select. You cannot index Number, Date, Formula, Rollup, Relation, or Created By properties. Each indexed column uses additional storage and may increase write latency slightly because Notion updates the index every time a row is edited.
When Indexing Helps Most
Databases with more than 500 rows benefit the most. Filters on indexed columns return results in under one second even on databases with 10,000 rows. Sorting by an indexed column also completes faster because the index already stores values in order.
When Indexing Does Not Help
If your database has fewer than 200 rows, the performance gain is negligible. Indexing also does not speed up grouped views or linked database views that aggregate data from multiple sources. Those operations depend on the source database structure, not on column-level indexes.
Steps to Enable Indexing on a Property
Follow these steps to turn on indexing for a text, select, or multi-select column in a Notion database.
- Open the property menu
Hover over the column header of the property you want to index. Click the down arrow that appears next to the property name. This opens the property settings panel. - Select Edit property
In the dropdown menu, choose Edit property. A new panel slides open showing the property name, type, and options. - Toggle the Index switch
Scroll down the panel until you see the Index section. Click the toggle switch to turn it on. The switch turns blue when indexing is active. Notion immediately begins building the index in the background. - Verify the index status
Close the property panel. Return to the database view and apply a filter using the same column. The query should complete faster on the second and subsequent uses. You can confirm indexing is active by reopening the property panel — the Index toggle remains blue.
Repeat these steps for any other columns you frequently filter or sort by. Indexing up to three columns per database is recommended. Beyond that, the write overhead may slow down row edits.
Common Mistakes and Limitations When Using Indexed Properties
Indexing a Formula or Rollup Column Shows No Option
Notion does not display the Index toggle for formula or rollup properties. These columns compute values dynamically, so a static index cannot be built. To work around this, create a helper text or select property that stores the computed value and enable indexing on that helper column. Use a manual or automated process to keep the helper column in sync.
Index Does Not Speed Up Linked Database Views
A linked database view pulls data from a source database. Even if the source database has indexed columns, the linked view may still load slowly because Notion caches the entire source result set. To improve linked view performance, reduce the number of visible rows in the source database or apply a filter before linking.
Indexed Column Slows Down Bulk Edits
Every time you change a value in an indexed column, Notion updates the index. If you paste 500 new rows at once, the index rebuild can delay the operation by several seconds. For bulk imports, disable indexing on the column, import the data, then re-enable indexing afterward.
Notion Database Query Performance: No Index vs Indexed Property
| Factor | No Index | Indexed Property |
|---|---|---|
| Filter speed on 1,000 rows | 1.5–3 seconds | Under 0.5 seconds |
| Sort speed on 1,000 rows | 1–2 seconds | Under 0.3 seconds |
| Write speed for new rows | Instant | Adds 0.1–0.3 seconds per row |
| Supported property types | All | Text, Select, Multi-select only |
| Storage overhead | None | Small additional storage per indexed column |
After enabling indexing on your most-used filter columns, you can reduce query wait times significantly. Start by indexing one or two columns that you filter or sort daily. For databases under 500 rows, test performance before and after to confirm the improvement is worth the write overhead. If you use rollup or formula columns often, build a helper property to apply indexing indirectly.