Which database plan to choose
The database plan defines the CPU and memory of each instance. For databases, memory matters even more than for applications: the more data and indexes fit in memory, the less the database depends on disk and the faster it responds.
This page explains the focus of each plan. Prices per instance, engines and storage rules are in Database Plans.
Quick summary: PostgreSQL, MariaDB and Valkey Key-Value
| Plan | vCPU | RAM | Focus | Typical examples |
|---|---|---|---|---|
db-free | 0.1 | 128 MB | Development and learning, at no cost | Prototype database, college project, test environment |
db-starter | 0.3 | 256 MB | First production database | Small site or API, early-stage SaaS, internal application with few users |
db-basic | 1 | 1 GB | Production with steady traffic | API with thousands of users, small e-commerce, WordPress |
db-premium | 2 | 2 GB | Larger databases, with metrics | Growing SaaS, many concurrent queries, reports |
db-enterprise | 8 | 8 GB | High load and large volumes | Platforms with many users, tens of GB of frequently used data |
db-free
Focus: learning, prototyping and testing at no cost.
db-free is a PostgreSQL with 1 instance and 1 GB of fixed storage. It is great to get started, but it has little memory and CPU: it handles few connections and simple queries well.
- Good for: local development pointing to a cloud database, study projects, prototypes and demos, test environments.
- Tip: set the application's connection pool to a few connections (for example, 2 to 5) and avoid keeping idle connections open.
- Not ideal for: production. The plan has no replicas, its storage does not grow and performance drops quickly with more traffic. When the project gets users, move to
db-starteror higher.
Each organization can have 1 PostgreSQL db-free. MariaDB and Valkey Key-Value have no free plan for new organizations.
db-starter
Focus: the first production database, at low cost.
With 0.3 vCPU and 256 MB, db-starter serves small applications that already have real users. PostgreSQL can have 1 to 3 instances, and MariaDB and Valkey always use one primary and two replicas.
- Good for: sites and APIs with a few thousand visits a day, early-stage SaaS, internal applications, the database of a Basic HTTP project.
db-basic
Focus: production with steady traffic.
With 1 vCPU and 1 GB, db-basic keeps more data and indexes in memory and handles more complex queries well.
- Good for: APIs with thousands of users, small and medium e-commerce stores, WordPress with MariaDB, mobile app back ends.
db-premium
Focus: larger databases and performance visibility.
With 2 vCPU and 2 GB, db-premium is the first plan with database metrics: CPU, memory, storage, connections, read cache, locks, latency and replication.
- Good for: growing SaaS, applications with many concurrent queries, databases also used by reports and BI tools such as Metabase.
db-enterprise
Focus: high load and large volumes of frequently used data.
With 8 vCPU and 8 GB per instance, db-enterprise serves platforms with many concurrent users and large databases that need plenty of memory to keep performing.
Analytics plans
The Analytics plans are for analytical queries over large volumes of data, such as events, logs and product metrics. They do not replace the application's main database.
| Plan | Resources | Focus |
|---|---|---|
analytics-sandbox | 1 vCPU, 2 GiB, 1 instance | Tests, learning and prototypes; up to 2 concurrent queries and queries of up to 5 minutes |
analytics-starter | 4 vCPU, 16 GiB, 1 instance | First real analytical workloads, without high availability |
analytics-production | 2 vCPU and 8 GiB per instance, 3 instances | Production analytics with high availability |
analytics-enterprise | 4 vCPU and 16 GiB per instance, 3 instances | Large volumes and many concurrent queries |
How to tell whether the plan is right
| Sign | What to do |
|---|---|
| The application gets "too many connections" errors | Reduce the connection pool or move up a plan |
| Queries that used to be fast get slow as data grows | Review indexes; if it continues, move to a plan with more memory |
| Memory or CPU usage always high in the metrics | Move up a plan before the database slows down at peak times |
Frequently asked questions
Can I start on db-free and move later?
Yes. Create a database on the plan you want and migrate the data with pg_dump and pg_restore. See Migration.
Does the database plan have to match the application plan?
No. A Basic application can use a db-basic database, for example. Size each one by what it does: the application by its traffic and the database by its data and query volume.
Next steps
Last updated on
Which plan to choose for Scheduled Jobs
What each Zenifra Scheduled Job plan is for (job-starter, job-basic and job-premium), with examples of tasks that run well on each one.
Which plan to choose for Cache and Queues
What each Zenifra Cache and Queues plan is for, from free to enterprise, with examples of uses that make sense on each one.