Databases
Database limits and passwords
How much database space, how many connections and how long a query each plan allows, what happens over the limit, and how to make a new password.
On this page
Every plan's databases have three limits. They keep one busy site from slowing down everyone else, and they are set automatically: you never configure them. This guide explains each limit, what you see when you reach it, and how to get back under it.
Before you start#
- You have at least one database. If not, start with Create and connect to a database.
- Your current usage is on the Databases page in the Size and limits card.
The limits by plan#
| Plan | Databases | Total size of all databases | Connections per database | A query stops after |
|---|---|---|---|---|
| Spark | 1 | 250 MB | 10 | 30 s |
| Starter | 3 | 1 GB | 15 | 30 s |
| Pro | 10 | 3 GB | 25 | 60 s |
| Business | 25 | 8 GB | 40 | 60 s |
| Scale | 50 | 20 GB | 60 | 120 s |
- Total size is the space of all your databases added together (data plus indexes), measured about every 10 minutes.
- Connections per database is how many open connections one database user may have at the same moment.
- Query time is the longest a single query may run before MariaDB stops it.
When databases reach the size limit#
FiniteHost never deletes your data for being over a limit. Instead:
- At 80% you get an email warning you to tidy up or upgrade.
- At 100% you get a second email, and your databases become read-only. Reading and deleting still work, so your site keeps showing pages, but anything that writes (a new order, a new post, a login that updates a timestamp) fails.
- The panel shows a red banner on the Databases page: Over the size limit: databases are read-only.
- Writing turns back on once the total drops below 95% of the limit, within about 10 minutes of the next measurement.
The 95% margin stops a database flipping between read-only and writable every few minutes when it sits right at the limit.
Get back under the limit#
Delete data you do not need#
For WordPress, the biggest wins are usually:
-- Old post revisions
DELETE FROM wp_posts WHERE post_type = 'revision';
-- Spam and trashed comments
DELETE FROM wp_comments WHERE comment_approved IN ('spam', 'trash');
-- Expired temporary data
DELETE FROM wp_options WHERE option_name LIKE '\_transient\_%';Your table prefix may differ from wp_; check $table_prefix in wp-config.php. A cleanup plugin such as WP-Optimize does the same from the WordPress dashboard. For your own apps, delete old log or session rows:
DELETE FROM visit_log WHERE created_at < NOW() - INTERVAL 90 DAY;Reclaim the space#
Deleting rows frees space inside a table, but the table file may not shrink until it is rebuilt. Once your databases are writable again, run:
OPTIMIZE TABLE wp_posts, wp_comments, wp_options;OPTIMIZE TABLE needs write access, so it does not work while the databases are read-only. Delete first, wait for writing to come back, then optimise.
To empty a whole table you no longer need, such as an old log table, TRUNCATE TABLE visit_log; works even while read-only and frees its space at once.
Or upgrade#
A bigger plan raises all three limits at once, and you pay only the difference for the days left. See Upgrade your plan.
Too many connections#
If one database already has its maximum number of connections open, the next one is refused with User has exceeded the 'max_user_connections' resource. Common causes:
- A traffic spike with a slow page: each visitor holds a connection for longer. Caching pages helps most (see CDN and caching).
- Code that opens a connection and never closes it, for example in a loop, or a Python worker that opens a new connection per message. Reuse one connection.
- Several sites sharing one database user. Give each site its own database.
Queries that are stopped#
A query that runs longer than your plan's limit is cancelled with Query execution was interrupted (max_statement_time exceeded). Usually the fix is an index on the column you search or sort by:
CREATE INDEX idx_orders_created ON orders (created_at);Big one-off jobs, such as importing or updating every row, should be split into smaller batches.
Make a new password#
If a password is lost or may have leaked, replace it.
- Open Databases in the panel.
- Click New password on the database's row.
- Confirm with Make new password. Apps using the old password stop connecting from now until you update them.
- Copy the new password from the dialog and click I have copied it.
- Update every place that uses it: for WordPress, the
DB_PASSWORDline inwp-config.php; for your own code, its config file. - Wait about a minute. The database shows Being set up while the server applies the new password, then Ready.
What's next#
- Plan limits for storage, CPU and memory.
Was this helpful?
Still stuck?
Email support@finitehost.com with your subscription ID (it starts with t, shown on the panel's Dashboard) and what you tried. A person replies, usually within one business day.
Last updated 27 October 2026. Found something wrong? Tell support@finitehost.com.