docs-v2/content/influxdb3/clustered/install/optimize-cluster/design-schema.md

3.9 KiB

title description menu weight related
Design your schema Use schema design guidelines to improve write and query performance in your InfluxDB cluster.
influxdb3_clustered
name parent
Design your schema Optimize your cluster
201
/influxdb3/clustered/write-data/best-practices/schema-design/

Schema design can have a significant impact on both write and query performance in your InfluxDB cluster. The items below cover high-level considerations and recommendation. For detailed recommendations, see Schema design recommendations.

Understand the difference between tags and fields

In the InfluxDB data structure, there are three main "categories" of information--timestamps, tags, and fields. Understanding the difference between what should be a tag and what should be a field is important when designing your schema.

Use the following guidelines to determine what should be tags versus fields:

  • Use tags to store metadata that provides information about the source or context of the data.
  • Use fields to store measured values.
  • Field values typically change over time. Tag values do not.
  • Tag values can only be strings.
  • Field values can be any of the following data types:
    • Integer
    • Unsigned integer
    • Float
    • String
    • Boolean

For more information, see Tags versus fields.

Schema restrictions

InfluxDB enforces the following schema restrictions:

  • You cannot use the same name for a tag and a field in the same table.
  • By default, a table can have up to 250 columns.

For more information, see InfluxDB schema restrictions.

Design for performance

The following guidelines help to ensure write and query performance:

{{% caption %}} Follow the links below for more detailed information. {{% /caption %}}

Design for query simplicity

The following guidelines help to ensure that, when querying data, the schema makes it easy to write queries:

{{% caption %}} Follow the links below for more detailed information. {{% /caption %}}

{{< page-nav prev="/influxdb3/clustered/install/optimize-cluster/" prevText="Optimize your cluster" next="/influxdb3/clustered/install/optimize-cluster/write-methods/" nextText="Identify write methods" >}}