---
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: 1814
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/clustered/admin/databases/
date: '2025-05-29T00:46:49-05:00'
lastmod: '2025-05-29T00:46:49-05:00'
---

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

> [!Note]
> **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.

**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/)
