doctl databases pool create

Go to Navigation


doctl databases pool create <database-cluster-id> <pool-name> [flags]




Creates a connection pool for the specified database cluster.

In addition to the pool’s name, you must also use flags to specify the pool’s target database, its size, and a database user that the pool uses to authenticate. If you do not specify a user, the field is set to inbound user. An example call would be:

The pool size is the minimum number of connections the pool can handle. The maximum pool size varies based on the size of the cluster.

There’s no perfect formula to determine how large your pool should be, but there are a few good guidelines to keep in mind:

  • A large pool stresses your database at similar levels as that number of clients would alone.
  • A pool that’s much smaller than the number of clients communicating with the database can act as a bottleneck, reducing the rate when your database receives and responds to transactions.

We recommend starting with a pool size of about half your available connections and adjusting later based on performance. If you see slow query responses, check the CPU usage on the database’s Overview tab. We recommend decreasing your pool size if CPU usage is high, and increasing your pool size if it’s low.

You can get a list of existing connection pools by calling:

doctl databases pool list <database-cluster-id>

You can get a list of existing database clusters and their IDs by calling:

doctl databases list


The following example creates a connection pool named example-pool for a database cluster with the ID ca9f591d-f38h-5555-a0ef-1c02d1d1e35. The command uses the --size flag to set the pool size to 10 and sets the user to the database’s default user:

doctl databases pool create ca9f591d-f38h-5555-a0ef-1c02d1d1e35 example-pool --size 10


Option Description
--db The name of the specific database within the database cluster (required)
--help , -h Help for this command
--mode The pool mode for the connection pool, such as session, transaction, and statement
Default: transaction
--size pool size (required)
Default: 0
--user The username for the database user
Command Description
doctl databases pool Display commands for managing connection pools

Global Flags

Option Description
--access-token, -t API V2 access token
--api-url, -u Override default API endpoint
--config, -c Specify a custom config file
  • macOS: ${HOME}/Library/Application Support/doctl/config.yaml
  • Linux: ${XDG_CONFIG_HOME}/doctl/config.yaml
  • Windows: %APPDATA%\doctl\config.yaml
--context Specify a custom authentication context name
--http-retry-max Set maximum number of retries for requests that fail with a 429 or 500-level error
Default: 5
--http-retry-wait-max Set the minimum number of seconds to wait before retrying a failed request
Default: 30
--http-retry-wait-min Set the maximum number of seconds to wait before retrying a failed request
Default: 1
--interactive Enable interactive behavior. Defaults to true if the terminal supports it (default false)
Default: false
--output, -o Desired output format [text|json]
Default: text
--trace Show a log of network activity while performing a command
Default: false
--verbose, -v Enable verbose output
Default: false