Field indexes in Baserow

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 in Baserow

Overview

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.

How to add a field index

Enable indexing on any supported field through the field configuration menu.

To create an index:

  1. Navigate to the table containing the field you want to optimize
  2. Click the dropdown arrow next to the field name
  3. Select Edit field from the menu
  4. Click the Advanced tab in the field editor
  5. Toggle the Index option to enable indexing
  6. Click Save to apply the change

Enabling field index in advanced settings

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.

Supported field types for indexing

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
Email ❌ 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

Using field indexes

Indexes work best alongside other optimizations: efficient filters, views focused on specific data subsets, and API queries structured to leverage indexed fields.

When to use field indexes

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.

When NOT to use field indexes

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.

API optimization strategy

Field indexes improve API query performance, especially for filtered requests.

  1. Identify fields commonly used in API filter parameters
  2. Enable indexes on those fields
  3. Structure API queries to leverage indexed fields
  4. Monitor API response times and adjust indexing strategy

Frequently asked questions

How do I know if my table needs indexes?

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.

Can I index multiple fields in the same table?

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.

Do indexes automatically update when I change data?

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.

Why isn’t the Index option available for my field?

Some field types don’t support indexing. See the supported field types section for the complete list.

Do indexes affect other users’ views or queries?

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.

What happens to indexes when I export or duplicate a table?

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.