An introduction to MariaDB's pluggable storage engine architecture, highlighting key engines like InnoDB, MyISAM, and Aria for different workloads.
MariaDB features pluggable storage engines to allow per-table workload optimization.
A storage engine is a type of plugin for MariaDB:
Different storage engines may be optimized for different workloads, such as transactional workloads, analytical workloads, or high throughput workloads.
Different storage engines may be designed for different use cases, such as federated table access, table sharding, and table archiving in the cloud.
Different tables on the same server may use different storage engines.
Identify the server's global default storage engine by using to query the system variable:
Identify the session's default storage engine by using :
Global default storage engine:
Session default storage engine supersedes global default during this session:
Storage engine is specified at time of table creation using a ENGINE = parameter.
Standard MariaDB storage engines are used for System Table storage:
Yes, different tables can use different storage engines on the same server.
To create a table with a specific storage engine, specify the ENGINE table option to the statement.
Yes, a single query can reference tables that use multiple storage engines.
In some cases, special configuration may be required. For example, ColumnStore requires cross engine joins to be configured.
is the recommended storage engine for transactional or OLTP workloads.
is the recommended storage engine for analytical or OLAP workloads.
An application that performs both transactional and analytical queries is known as .
HTAP can be implemented with MariaDB by using for transactional queries and for analytical queries.
.
, which shows available storage engines.
, which shows storage engine by table.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Cache, Temp
Temporary Data
ES 10.5+
Reads
Reads
ES 10.5+
Write-Heavy
I/O Reduction, SSD
ES 10.5+
Cloud
Read-Only
ES 10.5+
Federation
Sharding, Interlink
ES 10.5+
Read-Heavy
Reads
ES 10.5+
Analytics, HTAP
Big Data, Analytical
ES 10.5+
General Purpose
Mixed Read/Write
ES 10.5+
SHOW GLOBAL VARIABLES LIKE 'default_storage_engine';+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+SHOW SESSION VARIABLES LIKE 'default_storage_engine';+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+SET GLOBAL default_storage_engine='MyRocks';SET SESSION default_storage_engine='MyRocks';[mariadb]
...
default_storage_engine=MyRocksSHOW ENGINES;CREATE TABLE accounts.messages (
id INT PRIMARY KEY AUTO_INCREMENT,
sender_id INT,
receiver_id INT,
message TEXT
) ENGINE = MyRocks;