Field indexes in Baserow transform slow queries into lightning-fast operations; reducing filter and search times by up to 80% on large tables by creating optimized data structures that accelerate lookups without changing your table structure.
This guide explains how to use field indexes to dramatically improve query performance by speeding up filter operations and API requests on large tables.

Field indexes are database optimization structures that improve query performance by creating organized reference tables for specific fields. Think of an index like a book’s index; instead of scanning every page to find a topic, you look up the page number instantly in the alphabetized index at the back.
When you create an index on a field, Baserow builds and maintains a sorted, searchable structure that allows filters, searches, and API queries to locate matching rows orders of magnitude faster than scanning the entire table. This optimization becomes critical as tables grow beyond a few thousand rows, where unindexed queries can take seconds or minutes while indexed queries complete in milliseconds.
Indexes work best on fields you frequently use in filters or API queries; fields like customer ID, status, date ranges, or category selectors. However, indexes come with trade-offs: they consume additional storage space and slightly slow down row creation and updates as Baserow maintains the index structure alongside your data.
Enable indexing on any supported field through the field configuration menu.
To create an index:

Baserow immediately begins building the index in the background. Small tables index within seconds, while large tables (100K+ rows) may take minutes to complete initial indexing. During this time, queries continue working normally; they simply don’t benefit from the index until building completes.
Index maintenance: After creation, Baserow automatically maintains the index as you add, edit, or delete rows. This maintenance happens transparently without manual intervention, though it adds slight overhead to write operations.
To remove an index: Follow the same steps and toggle the Index option off. Baserow removes the index structure, freeing storage space and eliminating write overhead.
Not all field types support indexing. If a field type doesn’t support indexing but you frequently filter by it, consider creating a formula or lookup field that references it and index that field instead (if the result type supports indexing).
Here’s what can be indexed:
| Field type | Indexing support | Best use cases |
|---|---|---|
| Single line text | ✅ Supported | Customer names, IDs, SKUs, codes |
| Long text | ✅ Supported | Search optimization, descriptions |
| Number | ✅ Supported | Order numbers, quantities, prices |
| Date | ✅ Supported | Date range filters, timeline queries |
| Computed field | ✅ Supported | Count, Rollup, Lookup |
| Boolean | ⚠️ Limited benefit | Low cardinality; usually not needed |
| Single select | ❌ Not supported | Cannot index status, category, priority filters |
| ❌ Not supported | Cannot index customer lookups, user searches | |
| URL | ❌ Not supported | Cannot index link filtering, domain searches |
| Phone number | ❌ Not supported | Cannot index contact searches, lookups |
| Multiple select | ❌ Not supported | Cannot index multi-value fields |
| Link to table | ❌ Not supported | Use indexes on looked-up fields instead |
| File | ❌ Not supported | Cannot index attachment fields |
| Duration | ❌ Not supported | Index date fields instead |
Indexes work best alongside other optimizations: efficient filters, views focused on specific data subsets, and API queries structured to leverage indexed fields.
Large table filtering: Tables with 10,000+ rows where filters take multiple seconds to apply benefit significantly from indexes on filtered fields.
API query optimization: Applications making frequent API queries filtering by specific fields (customer ID, order number, status) see dramatic performance improvements.
High-volume searching: Fields used in search operations or “contains” filters speed up when indexed, especially with text fields.
Dashboard and reporting: Views that filter or sort by specific fields load faster when those fields are indexed, improving user experience.
Integration performance: Webhooks, automations, and integrations querying your table benefit from indexes on their query fields.
Small tables: Tables under 1,000 rows typically don’t benefit from indexes; the overhead outweighs the gains.
Rarely queried fields: Fields never or rarely used in filters waste storage space if indexed.
High write-frequency fields: Fields updated constantly incur performance penalties maintaining indexes; avoid indexing frequently-changing fields unless read performance is critical.
Storage-constrained environments: Indexes consume additional database storage; avoid over-indexing when storage is limited.
Fields with few unique values: Boolean provides minimal index benefits since most optimizations work well on low-cardinality fields without indexes.
Performance gains vary based on table size, hardware, query complexity, and field data distribution. Larger tables and more selective filters show greater improvements.
Field indexes improve API query performance, especially for filtered requests.
If filter operations take more than 2-3 seconds on tables with 5,000+ rows, or if API queries feel sluggish, indexes likely help. Monitor query performance in browser developer tools; if you see long wait times when applying filters, index the filtered fields.
Yes, you can create multiple indexes per table, though each adds storage overhead and write performance impact. Focus on your 3-5 most-queried fields first, then add more indexes only if performance measurements justify them.
Yes, Baserow maintains indexes automatically as you add, edit, or delete rows. You never need to manually rebuild or refresh indexes; they stay synchronized with your data transparently in the background.
Some field types don’t support indexing. See the supported field types section for the complete list.
No, indexes are table-level optimizations that improve performance for all users querying that table, not just you. When you enable an index, everyone benefits from faster filters and searches on that field across all views.
Indexes don’t export with data in CSV/Excel; they’re database structures, not data. When duplicating tables within Baserow, index configurations copy to the new table. When importing external data, you’ll need to recreate indexes manually on the new table.
Still need help? If you’re looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you.