InnoDB
The MySQL and MariaDB storage engine that Drupal requires as its primary engine; it adds transactions, row-level locking and foreign key checks.
InnoDB is a storage engine for MySQL and MariaDB: the component that stores a table's rows on disk and decides how queries read and lock them. Drupal on MySQL or MariaDB depends on it. Drupal.org lists InnoDB as the required primary storage engine, and the core MySQL driver creates tables with it.
How InnoDB fits Drupal 11
The MySQL manual describes InnoDB as a general-purpose engine whose changes follow the ACID model, with commit, rollback and crash recovery. The manual says row-level locking and consistent reads increase multi-user concurrency, and that InnoDB supports FOREIGN KEY constraints. In MySQL 8.4 it is the default engine, and the MariaDB knowledge base calls it the default for MariaDB Server.
Drupal does not rely on the server default. The MySQL driver's Schema class builds each CREATE TABLE statement with ENGINE = InnoDB and the utf8mb4 character set, unless a table definition sets its own mysql_engine. During installation, the driver's installer tasks fail with the message that the MyISAM storage engine is not supported when MyISAM is the default engine and InnoDB is not listed.
The MySQL driver also checks how transactions are isolated. Core reads the session isolation level and reports it on the Status report as "Transaction isolation level". REPEATABLE-READ gives a warning, any value other than READ-COMMITTED is an error, and the message names READ COMMITTED as the recommended level. READ-COMMITTED passes only when every table has a primary key; otherwise the entry is an error that lists the tables without one.
Example
To see which engines your database offers, run this in a MySQL client. Core's installer uses the same statement:
SHOW ENGINES;
Common mistakes
- Ignoring the isolation warning on the Status report. A warning for
REPEATABLE-READis Drupal telling you its recommended level is different. - Assuming a Drupal site always uses InnoDB. A site on PostgreSQL or SQLite has no InnoDB tables at all.
For marketing and content teams
You will not touch the storage engine. It matters when you choose or change a host, or when a developer plans a migration. Ask the host to confirm that Drupal 11 runs on a supported MySQL or MariaDB version with InnoDB, and keep the answer with the rest of the site maintenance notes. The wider hosting stack is described under LAMP.
Sources
- Drupal.org: Database server requirements (checked 2026-10-26)
- Drupal core 11.4.10: MySQL driver Schema class
- Drupal core 11.4.10: MySQL installer tasks
- Drupal core 11.4.10: INSTALL.mysql.txt
- Drupal core 11.4.10: MySQL runtime requirements (transaction isolation)
- MySQL 8.4 Reference Manual: Introduction to InnoDB
- MySQL 8.4 Reference Manual: Converting tables from MyISAM to InnoDB
- MariaDB Knowledge Base: InnoDB