Choosing Indexes
Pick the right Pinot index by query pattern, data shape, and workload.
Use this guide when you know the query shape and need a practical recommendation.
The goal is not to enable every possible index. The goal is to keep the table config aligned with the queries that matter most.
Decision guide
Equality filters such as WHERE userId = '...'
Fast point lookups and selective filtering.
Stable sort-key lookups
Useful when the segment sort order matches common filters.
What to check before you configure an index
Verify the exact
WHERE,GROUP BY, and function patterns in the query.Check whether the column is dictionary encoded, single-value, multi-value, or JSON.
Confirm the index can be expressed in the current table config style.
Decide whether the index must exist on new segments only or should be reloaded onto existing segments.
For table-level configuration details, use Table. For an end-to-end example that applies indexes to an ingestion pipeline, use Configure indexes.
Query validation examples
If you are validating an index choice, keep the query itself simple and representative.
Configuration style
Prefer the modern column-level configuration in fieldConfigList when the index supports it. Use legacy table-level settings only when you are maintaining an older table or following a migration path.
If you need to change an index on an existing table, confirm whether the change can be applied incrementally or whether the segments need to be reloaded.
What this page covered
This page mapped common Pinot query patterns to the indexes that usually fit them best and highlighted the checks to do before changing table config.
Next step
Open the specific index page for the workload you are tuning, then compare it with the table config and query examples for that workload.
Related pages
Last updated
Was this helpful?

