---
title: Manage databases
description: Manage databases in your InfluxDB cluster. A database is a named location where time series data is stored. Each InfluxDB database has a retention period, which defines the maximum age of data stored in the database.
url: https://docs.influxdata.com/influxdb3/clustered/admin/databases/
estimated_tokens: 2918
product: InfluxDB Clustered
version: clustered
---

# Manage databases

An InfluxDB database is a named location where time series data is stored. Each InfluxDB database has a [retention period](#retention-periods).

**If coming from InfluxDB v1**, the concepts of databases and retention policies have been combined into a single concept–database. Retention policies are no longer part of the InfluxDB data model. However, InfluxDB Clustered does support InfluxQL, which requires databases and retention policies. See [InfluxQL DBRP naming convention](/influxdb3/clustered/admin/databases/create/#influxql-dbrp-naming-convention).

**If coming from InfluxDB v2, InfluxDB Cloud (TSM), or InfluxDB Cloud Serverless**, *database* and *bucket* are synonymous.

## Retention periods

A database **retention period** is the maximum age of data stored in the database. The age of data is determined by the timestamp associated with each point. When a point’s timestamp is beyond the retention period (relative to now), the point is marked for deletion and is removed from the database the next time the retention enforcement service runs.

The *minimum* retention period for and InfluxDB database is 1 hour. The *maximum* retention period is infinite meaning data does not expire and will never be removed by the retention enforcement service.

## Table and column limits

You can customize [table (measurement) limits](#table-limit) and [table column limits](#column-limit) when you [create](#create-a-database) or [update a database](#update-a-database) in InfluxDB Clustered.

### Table limit

**Default maximum number of tables**: 500

Each measurement is represented by a table in a database. Your database’s table limit can be raised beyond the default limit of 500. InfluxData has production examples of clusters with 20,000+ active tables across multiple databases.

Increasing your table limit affects your InfluxDB cluster in the following ways:

[](#may-improve-query-performance-view-more-info)

**May improve query performance** *View more info*

Schemas with many measurements that contain [focused sets of tags and fields](/influxdb3/clustered/write-data/best-practices/schema-design/#design-for-performance) can make it easier for the query engine to identify what partitions contain the queried data, resulting in better query performance.

[](#more-puts-into-object-storage-view-more-info)

**More PUTs into object storage** *View more info*

By default, InfluxDB Clustered partitions data by measurement and time range and stores each partition as a Parquet file in your cluster’s object store. By increasing the number of measurements (tables) you can store in your database, you also increase the potential for more `PUT` requests into your object store as InfluxDB creates more partitions. Each `PUT` request incurs a monetary cost and increases the operating cost of your cluster.

[](#more-work-for-the-compactor-view-more-info)

**More work for the compactor** *View more info*

To optimize storage over time, your InfluxDB cluster contains a compactor that routinely compacts Parquet files in object storage. With more tables and partitions to compact, the compactor may need to be scaled (either vertically or horizontally) to keep up with demand, adding to the operating cost of your cluster.

### Column limit

**Default maximum number of columns**: 250

**Configurable maximum number of columns**: 1000

Each row must include a time column, with the remaining columns representing tags and fields. As a result, a table with 250 columns can have one time column and up to 249 field and tag columns.

If you attempt to write to a table and exceed the column limit, the write request fails and InfluxDB returns an error.

If you update the column limit for a database, the limit applies to newly created tables; doesn’t override the column limit for existing tables.

Increasing your column limit affects your InfluxDB cluster in the following ways:

[](#may-adversely-affect-system-performance)

May adversely affect system performance

When creating or updating a database, you can configure the table column limit to be lower than the default or up to 1000, based on your requirements. InfluxData identified 250 columns as the safe limit for maintaining system performance and stability. Exceeding this threshold can result in [wide schemas](/influxdb3/clustered/write-data/best-practices/schema-design/#avoid-wide-schemas), which can negatively impact performance and resource use, depending on your queries, the shape of your schema, and data types in the schema.

## [Create a database](/influxdb3/clustered/admin/databases/create/)

Use the [`influxctl database create` command](/influxdb3/clustered/reference/cli/influxctl/database/create/) to create a new InfluxDB database in your InfluxDB cluster. Provide a database name and an optional retention period.

##### CLI

```sh
influxctl database create \
  --retention-period 30d \
  --max-tables 500 \
  --max-columns 250 \
  DATABASE_NAME
```

[Read more](/influxdb3/clustered/admin/databases/create/)

## [Update a database](/influxdb3/clustered/admin/databases/update/)

Use the [`influxctl database update` command](/influxdb3/clustered/reference/cli/influxctl/database/update/) to update a database in your InfluxDB cluster.

```sh
influxctl database update \
  --retention-period 30d \
  --max-tables 500 \
  --max-columns 250 \
  DATABASE_NAME
```

[Read more](/influxdb3/clustered/admin/databases/update/)

## [List databases](/influxdb3/clustered/admin/databases/list/)

Use the [`influxctl database list` command](/influxdb3/clustered/reference/cli/influxctl/database/list/) to list databases in your InfluxDB cluster.

```sh
influxctl database list
```

[Read more](/influxdb3/clustered/admin/databases/list/)

## [Rename a database](/influxdb3/clustered/admin/databases/rename/)

Use the [`influxctl database rename` command](/influxdb3/clustered/reference/cli/influxctl/database/rename/) to rename a database in your InfluxDBed cluster.

##### CLI

```sh
influxctl database rename <DATABASE_NAME> <NEW_DATABASE_NAME>
```

[Read more](/influxdb3/clustered/admin/databases/rename/)

## [Delete a database](/influxdb3/clustered/admin/databases/delete/)

Use the [`influxctl database delete` command](/influxdb3/clustered/reference/cli/influxctl/database/delete/) to delete a database from your InfluxDB cluster. Provide the name of the database you want to delete.

```sh
influxctl database delete <DATABASE_NAME>
```

[Read more](/influxdb3/clustered/admin/databases/delete/)

## [Undelete a database](/influxdb3/clustered/admin/databases/undelete/)

Use the [`influxctl database undelete` command](/influxdb3/clustered/reference/cli/influxctl/database/undelete/) to restore a previously deleted database in your InfluxDBed cluster.

```sh
influxctl database undelete <DATABASE_NAME>
```

[Read more](/influxdb3/clustered/admin/databases/undelete/)

#### Related

-   [InfluxDB schema design recommendations](/influxdb3/clustered/write-data/best-practices/schema-design/)
-   [influxctl](/influxdb3/clustered/reference/cli/influxctl/)

[databases](/influxdb3/clustered/tags/databases/)
