Skip to content
Navigation

Type at least two characters. Search covers page titles, headings, tags and database names.

↑ ↓ to navigateEnter to openEsc to close0 pages
MariaDBintermediate

MariaDB Storage Engines

When any engine other than InnoDB is the right choice, and the operational cost of mixing engines in one server.

2 min readIntermediateUpdated Edit this page

MariaDB ships several storage engines. In practice InnoDB is the answer for transactional data, and the others are narrow tools.

EngineTransactionsCrash safeReasonable use
InnoDBYesYesEverything transactional — the default
AriaNoYes (with page cache)Internal temporary tables; some read-heavy tables
MyRocksYesYesVery write-heavy workloads where space amplification matters
ColumnStoreNoYesAnalytical queries over large fact tables
SpiderPasses throughDepends on backendSharding across remote MariaDB servers
MyISAMNoNoLegacy only
MEMORYNoNoSmall, rebuildable lookup tables

InnoDB

The default and correct choice for application data: row-level locking, MVCC, crash recovery and foreign keys. Everything in InnoDB Architecture applies.

Aria

MariaDB's crash-safe successor to MyISAM. It is used internally for temporary tables and system tables. It is not transactional, so it is not suitable for application data that must be consistent after a crash mid-write.

MyRocks

An LSM-tree engine built on RocksDB. Compared with InnoDB it typically writes less data per logical write and stores data more compactly, at the cost of read amplification and different tuning. It suits sustained write-heavy workloads where storage cost dominates. See RocksDB for the underlying behaviour.

ColumnStore

A columnar engine for analytics inside MariaDB. It removes the need for a separate analytical system in modest deployments, but its operational model, resource profile and query characteristics are quite different from InnoDB's. Evaluate it against a dedicated column store such as ClickHouse before adopting it for a large workload.

Spider

Shards tables across remote MariaDB servers, presenting them as one table. It moves the sharding problem into the database layer, but all the constraints in Sharding still apply — cross-shard joins, transactions and uniqueness remain hard.

Mixing engines

A transaction spanning an InnoDB table and a non-transactional table is not atomic: the InnoDB part rolls back, the other does not. Galera additionally replicates only InnoDB reliably. Keep application data on one transactional engine and treat exceptions as deliberate, documented decisions.