Introduction to MariaDB engines
When you use MariaDB, you may not know all of the engines, what they can do, which one is more efficient, and in which situation, and so on.
Comparing all the available engines of MariaDB could take a whole book. So, we're going to cover them here, but just an introduction with some additional information to help you to choose some of them for testing.
The classic engines that can also be found on MySQL are as follows:
Engine |
Description |
---|---|
MyISAM |
This is a light and nontransactional engine. It has good performance and a small data footprint. MyISAM has good performances for small database access. |
InnoDB |
InnoDB gets very high performance when the database size is less or equal to the RAM size to be used as cache. It's unfortunately not as efficient as MyISAM if there is not enough RAM memory. |
BLACKHOLE |
The BLACKHOLE engines accept data but they are immediately dropped and a zero result is returned by the engine. This engine is generally used for complex replication filtering on very high load databases. |
CSV |
The CVS engine is able to read and write CSV (comma-separated-values) format files. |
MEMORY |
The MEMORY engine stores data in memory to perform very fast queries. Generally used for read-only cache or temporary access, it's the fastest engine but with some limitations, such as no support for blob or text columns. As a result, it's a nonpersistent engine because all data is in the RAM. |
ARCHIVE |
The ARCHIVE engine is a good solution for minimal disk space occupation with small footprint. It compresses rows with the |
MERGE |
The MERGE engine is a collection of identical MyISAM tables that can be used as one table. |
MariaDB introduces several new engines and is still adding some more for different usages and performances:
Engine |
Available version |
Description |
---|---|---|
Aria |
>= 5.1 |
This engine is a crash-safe alternative to MyISAM. It's able to be a transactional and nontransactional storage. |
XtraDB |
>= 5.1 |
The Percona XtraDB engine is a drop-in replacement for InnoDB. It's more scalable with many cores and also gets highest performances and more metrics. |
PBXT |
< 5.5 |
The PrimeBase XT (PBXT) engine is designed for a high concurrency environment. It's unfortunately not maintained anymore. |
FederatedX |
>= 5.1 |
This engine is a drop-in replacement of the FEDERATED engine. It uses |
SphinxSE |
>= 5.2 |
The Sphinx Search Engine (SphinxSE) is a built-in client to talk directly to the searchd daemon and run search queries. It doesn't store data at all. |
IBMDB2I |
< 5.5 |
This engine is able to store its data in a DB2 table running on IBM. |
TokuDB |
>= 5.5 |
This is a highly scalable engine with indexing-based query acceleration, no slave lag performance, unparalleled compression, and hot schema modification. It has better performances compared to XtraDB, when you do not have enough RAM. In that case, performances are quite similar to MyISAM. |
Cassandra |
>= 10 |
This engine allows direct access to a Cassandra cluster from MariaDB. |
Connect |
>= 10 |
This engine permits access to local or remote data when defining tables based on different data types. |
Sequence |
>= 10 |
This engine permits the creation of ascending or descending number sequences using a starting and ending value and increment. |
Spider |
>= 10 |
This is a built-in sharding features engine that supports xa transactions, partitioning, and allows table links to the table on a remote server. |
HandlerSocket |
>=5.3 |
This is a NoSQL plugin. It doesn't support SQL queries but supports CRUD (Create/Update/Delete) operations on tables. It accepts direct TCP connections. |
In the future, more and more NoSQL engines will be integrated.