Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Database choice for reliability

Which database a business should run Exponential on, from the project's official order of preference, with what each choice means for writes under load, several web servers, backups, testing and the skills your team…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/businesses/reliability/database-choice-for-reliability.md

On this page

Database choice for reliability

This page is for owners, managers and project leads who choose, or inherit, the database behind an Exponential site. It explains the project's official order, what each choice means for a business's reliability, and how to decide. The full technical comparison is Database support; the operator's chapter is chapter 9 of the installation book.

Contents

  1. The official order
  2. What the choice affects
  3. Each database in business terms
  4. How well each one is tested
  5. Backups per database
  6. Choosing for your business
  7. Changing later

The official order

"Supported databases (Exponential 6.0.x), in order of preference: 1. SQLite 3 (the default) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL. Microsoft SQL Server is known to be possible with additional work at this time" (Database support, also in the README, "Requirements").

The order is a recommendation for new sites. All six are supported; the page notes that MySQL "is last in the order, not because it works less well, but because the project recommends the others first for new sites".

What the choice affects

ConcernWhy it matters to a business
Writes under loadMany editors publishing, many orders at checkout, many sign-ups at once
Several web serversWhether you can add servers later (Clustering and high availability)
Backups and point-in-time recoveryHow much data you can lose, and how fast you restore (Backups that restore)
TestingHow much of the project's own testing covers your choice
SkillsWhether your team or hosting partner knows how to run and repair it
HostingWhether your host offers and manages it

Each database in business terms

From Database support and Performance and scaling:

DatabaseIn business terms
1. SQLite 3The default. No database server: "the whole content repository is one file". A full production database for a site served from one machine. Reads scale; writes queue for a single lock, so "For many editors publishing at once use MySQL or PostgreSQL" (Operating a site)
2. PostgreSQL"The recommended database server: strict SQL, row-level locking, replication and point-in-time recovery of its own, and it is tested in CI on every push"
3. MongoDBSupported through an adapter; "the choice for organizations standardized on MongoDB". Read its limits first
4. MariaDB"The MySQL-compatible server the project prefers"; same driver as MySQL
5. OracleSupported (19c and later) through the ezoracle extension, present in every installation
6. MySQLSupported on the same driver as MariaDB, and tested in CI

Microsoft SQL Server has no driver in Exponential 6.0.x; it is "known to be possible" with additional work (Database support).

Several web servers on one database: every engine except SQLite supports it (Database support, at a glance).

How well each one is tested

What the project's continuous integration runs on every push (Database support, test coverage):

DatabaseIn the project's CI
SQLite 3Driver unit tests, on PHP 8.1 to 8.5
PostgreSQLDatabase tests against PostgreSQL 15
MongoDBAdapter unit tests without a server
MariaDBNot directly; covered indirectly by the MySQL job (same driver)
OracleNo
MySQLDatabase tests against MySQL 8.0

For a business that wants the most project-side testing behind its database server, PostgreSQL and MySQL are the engines with live database tests on every push. For the others, rehearse upgrades on a copy of your own site with extra care (Upgrades without surprises).

Backups per database

Each engine has its own backup and restore tool; the commands are in Database support, backup and restore. In business terms:

  • SQLite: an online, consistent backup with .backup; "never copy a database file that is in use".
  • PostgreSQL: dumps, plus point-in-time recovery of its own for a finer recovery point.
  • MariaDB and MySQL: --single-transaction dumps are consistent for InnoDB tables without locking them.
  • MongoDB: mongodump and mongorestore.
  • Oracle: Data Pump, through ext:ezoracle:datapump or Oracle's own tools.

Whatever the engine, the backup is only half; the files are the other half.

Choosing for your business

Your situationA sensible starting point
A small site, one server, few editorsSQLite, the default; simplest to run and back up
A shop or member site with many writes at once, or several editors publishing all dayPostgreSQL, or MariaDB or MySQL if that is what your host knows best
You expect to need several web serversAny engine except SQLite
Your organization standardized on MongoDB or OracleThat engine, after reading its section in Database support
Your hosting partner manages one engine very wellWeigh that skill heavily: a well-run database beats a better one that nobody knows

Tip

Ask your hosting partner which engine they back up, monitor and restore most often. Their experience is part of your reliability.

Changing later

A site can be moved to another database; the procedure is in Database support, moving a site to another database and, for hosts, Changing the database engine. Treat it as a project: back up first, rehearse on a copy, compare the content afterwards, and plan a maintenance window.

To see which database a site uses today, open Setup > System information; its Database card shows the engine (System information).

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x