content/influxdb3/enterprise/admin/file-index/_index.md
{{% product-name %}} lets you customize how your data is indexed to help optimize query performance for your specific workload, especially workloads that include single-series queries. Indexes help the InfluxDB query engine quickly identify the physical location of files that contain the queried data.
By default, InfluxDB indexes on the primary key—time and tag columns. However,
if your schema includes tags that you don't specifically use when querying, you
can define a custom indexing strategy to only index on time and columns
important to your query workload.
For example, if your schema includes the following columns:
And in your query workload, you only query based on country, state or province,
and city, you can create a custom file indexing strategy that only indexes on
time and these specific columns. This makes your index more efficient and
improves the performance of your single-series queries.
[!Note] File indexes can use any string column, including both tags and fields.
{{% product-name %}} builds indexes as it compacts data. Compaction is the process that organizes and optimizes Parquet files in storage and occurs in multiple phases or generations. Generation 1 (gen1) data is un-compacted and is not indexed. Generation 2 (gen2) data and beyond is all indexed.
{{< children hlevel="h2" >}}