---
title: Manage databases
description: An InfluxDB 3 Enterprise database is a named location where time series data is stored. Each database can contain multiple tables.
url: https://docs.influxdata.com/influxdb3/enterprise/admin/databases/
estimated_tokens: 3333
product: InfluxDB 3 Enterprise
version: enterprise
---

# Manage databases

An InfluxDB 3 Enterprise database is a named location where time series data is stored. Each database can contain multiple tables.

**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 3 Enterprise does support InfluxQL, which requires databases and retention policies. See [InfluxQL DBRP naming convention](/influxdb3/enterprise/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.

By default, data does not expire. When you [create a database](/influxdb3/enterprise/admin/databases/create/), you can optionally set a retention period. The minimum practical retention period is 1 hour (`1h`).

Database retention periods can be [updated after creation](/influxdb3/enterprise/reference/cli/influxdb3/update/database/). For tables within a database, you can [set table-specific retention periods](/influxdb3/enterprise/admin/tables/create/#create-a-table-with-a-retention-period) that override the database retention period.

For complete details about retention periods, including duration formats, precedence rules, and deletion behavior, see [Data retention in InfluxDB 3 Enterprise](/influxdb3/enterprise/reference/internals/data-retention/).

## Database, table, and column limits

InfluxDB 3 Enterprise places the following limits on databases, tables, and columns:

### Database limit

**Maximum number of databases**: 100

### Table limit

**Maximum number of tables across all databases**: 10000

InfluxDB 3 Enterprise limits the number of tables you can have across *all* databases to 10000 by default . You can configure the table limit using the [`--num-table-limit` configuration option](/influxdb3/enterprise/reference/config-options/#num-table-limit).

InfluxDB doesn’t limit how many tables you can have in an individual database, as long as the total across all databases is below the limit.

Having more tables affects your InfluxDB 3 Enterprise installation in the following ways:

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

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

Schemas with many tables that contain [focused sets of tags and fields](/influxdb3/enterprise/write-data/best-practices/schema-design/#design-for-performance) can make it easier for the query engine to identify what Parquet files 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*

When using cloud-based object storage as your data backend, the more tables you have, the more `PUT` requests there are into your object store as InfluxDB persists data to Parquet files. Each `PUT` request incurs a monetary cost and increases the operating cost of InfluxDB 3 Enterprise.

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

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

To optimize storage over time, InfluxDB 3 Enterprise has a compactor that routinely compacts Parquet files. With more tables and Parquet files to compact, the compactor may need to be scaled to keep up with demand, adding to the operating cost of InfluxDB 3 Enterprise.

### Column limit

**Maximum number of columns per table**: 500

Each row must include a time column, with the remaining columns representing tags and fields. As a result, by default, a table can have one time column and up to 499 *combined* 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.

You can configure the maximum number of columns per table using the [`num-total-columns-per-table-limit` configuration option](/influxdb3/enterprise/reference/config-options/#num-total-columns-per-table-limit).

Higher numbers of columns has the following side-effects:

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

May adversely affect system performance

InfluxData identified 500 columns as the safe limit for maintaining system performance and stability. Exceeding this threshold can result in [wide schemas](/influxdb3/enterprise/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/enterprise/admin/databases/create/)

Use the influxdb3 CLI, HTTP API, or InfluxDB 3 Explorer to create a new database in InfluxDB 3 Enterprise.

```sh

# influxdb3 CLI
influxdb3 create database \
  --retention-period 30d \
  DATABASE_NAME

# HTTP API
curl --request POST "http://localhost:8181/api/v3/configure/database" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer AUTH_TOKEN" \
  --data '{
    "db": "DATABASE_NAME",
    "retention_period": "30d"
  }'
```

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

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

Use the influxdb3 CLI, HTTP API, or InfluxDB 3 Explorer to list databases in InfluxDB 3 Enterprise.

```sh
# influxdb3 CLI
influxdb3 show databases

# HTTP API
curl --request GET "http://localhost:8181/api/v3/configure/database" \
  --header "Authorization: Bearer AUTH_TOKEN"
```

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

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

Use the influxdb3 CLI, HTTP API, or InfluxDB 3 Explorer to delete a database from InfluxDB 3 Enterprise.

```sh
# influxdb3 CLI
influxdb3 delete database DATABASE_NAME

# HTTP API
curl --request DELETE "http://localhost:8181/api/v3/configure/database?db=DATABASE_NAME" \
  --header "Authorization: Bearer AUTH_TOKEN"
```

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

#### Related

-   [InfluxDB schema design recommendations](/influxdb3/enterprise/write-data/best-practices/schema-design/)
-   [influxdb3 CLI](/influxdb3/enterprise/reference/cli/influxdb3/)
-   [Database API reference](/influxdb3/enterprise/api/v3/#tag/Database)
-   [Data retention in InfluxDB 3 Enterprise](/influxdb3/enterprise/reference/internals/data-retention/)
-   [Manage databases with InfluxDB 3 Explorer](/influxdb3/explorer/manage-databases/)

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