MySQL pluggable Storage Engines (SE)

One of the big advantages of MySQL is its concept of Pluggable Storage Engines. This means you can choose the most optimal Storage Engine for your needs. This also has a disadvantage: You have to know what you are doing…

If you need some help deciding which is the right Storage Engine or even strategy for you or if you want us to make an independent and vendor neutral comparison of those Storage Engines consider our FromDual Consulting Services!

MySQL provides the following storage engines:

mysql> SHOW ENGINES;

+------------+----------+-------------------------------------------------------+
| Engine     | Support  | Comment                                               |
+------------+----------+-------------------------------------------------------+
| ARCHIVE    | YES      | Archive storage engine                                |
| BerkeleyDB | NO       | Transactional storage engine with page-level locking  |
| BLACKHOLE  | YES      | /dev/null storage engine for replication transmission |
| CSV        | YES      | CSV storage engine                                    |
| EXAMPLE    | YES      | Example storage engine                                |
| Falcon     | YES      | Falcon storage engine                                 |
| FEDERATED  | YES      | Federated MySQL storage engine (like database links)  |
| InnoDB     | YES      | Transactional storage engine with row-level locking   |
| ISAM       | NO       | Obsolete storage engine                               |
| MEMORY     | YES      | Hash based in memory tables                           |
| MRG_MYISAM | YES      | Collection of identical MyISAM tables (MERGE)         |
| MyISAM     | DEFAULT  | Default engine with great performance                 |
| ndbcluster | DISABLED | Clustered, fault-tolerant, memory-based tables        |
+------------+----------+-------------------------------------------------------+

Comments

Storage EngineComment
BerkeleyDBDiscontinued Storage Engine.
FalconIts future is uncertain at the moment.
FEDERATEDCurrently disabled by default (no GA quality).
ISAMDiscontinued Storage Engine. Should not be used any more. Use MyISAM instead.
Aria (ex. Maria)Seems to have no future within MySQL. See 3rd party providers and MariaDB.
MRG_MYISAMShould not be used any more. Use partitioning option (MySQL 5.1) instead.

3rd party Storage Engine providers

If you think some of the information below is inappropriate or missing please let us know!

There are also many independent Storage Engine providers:

ProviderEngineStatePlatformsLicenseReleaseFeatures
Antony T CurtisAmira SEDiscontinued?GPL v2Transactional Storage Engine MySQL based upon the NuSphere Gemini Storage Engine.
Monty Program ABAria SEGALinux, Solaris, Windows, etc.GPL v2Crash Safe MySQL Storage Engine. Successor of MyISAM.
Alex EsterkinAriella SEpre-AlphaGPL v2Discontinued?Global transaction and lock management, as well as transactional elastic provisioning and de-provisioning. The intended use cases: (1) transactional elastic data fabric in a cloud; (2) transaction monitor for cloud computing.
AmazonAWS S3Betav0.06 (Apr 2007?)Makes the Amazon AWS S3 Simple Storage Service available as tables and rows in MySQL. This gives MySQL applications simple access to S3's worldwide distributed highly-available disaster-resistant storage and distribution system. Keep big slow blobs "out-line" to join against fast local tables. Solves the "Image Server Problem". Gives an entire CMS in SQL.
Softmethod GmbHBlackRayGPL v2v0.10The BlackRay Storage Engine is a fully relational database system designed to offer performance features commonly associated with search engines. It offers SQL support, JDBC and ODBC driver options.
Toru MaesakaBlitzDB SEGPL v2Highly efficient general purpose use DB. Non-transactional competition to MyISAM and MEMORY engines. Developed with Drizzle.
OblakSoftClouSEBetaLinuxProprietaryv1.0ClouSE provides fully functional, transactional and ACID-compliant relational data management on top of cloud storage such as Amazon S3 (that may provide only basic capabilities and eventual consistency guarantees). ClouSE implements data encryption to provide full data confidentiality in the cloud, so cloud storage can be "plugged into" MySQL in a seamless and secure manner.
DDEDistributed Data EngineAlphaGPLv0.2Revision of data is a mandatory task for any high security data. Creating revisions on database objects uses up many software development resources and is error prone. This engine will give database administrators the possibility to create a table that is versioned automatically.
The Distributed Data Engine is an Open Source project that is dedicated to provide a Storage Engine for distributed data according to workload statistics. There are two main use cases for the engine. The first one is to reduce the network traffic by distributing the data according to where the data will be needed next. The other is to speed up full table scans by equally distributing the data among all servers using the I/O throughput of the all nodes plus evaluating the WHERE clauses before all data is merged in one node on the single node.
InfoBrightBrightHouseGALinux and WindowsProprietary (IEE) and OSS (ICE)?v3.5Data warehouse (DWH) data compression.
FederatedXFederatedXBetaGPLv0.4FederatedX Pluggable Storage Engine for MySQL is based off of the Federated Storage Engine, and is an attempt to moved the Federated Storage Engine forward to fix bugs, add new features and develop new concepts that are easier to achieve as a pluggable storage engine.
Domas M.FIFO SE
IBMIBMDB2IGAAS400, i5/OSProprietaryDB2 interface for DB2 on i5/OS (AS400)
CalpontInfiniDBGALinuxGPL v2/Commercialv1.0.3, v1.1aInfiniDB is a scalable data warehousing (DWH) storage engine for MySQL. It is a column-oriented RDBMS primarily designed to handle the following application scenarios: Data warehouses, data marts, and other business intelligence (BI) / analytic databases, general purpose reporting databases, read-intensive segments of an overall application where read/search/lookup portions of the application are served by an analytic/query database and the transactional segments (e.g. order entry, etc.) are managed by a traditional relational database.
mdbtoolsmdbtoolspre-AlphaGPLA pluggable storage engine that allows read-only access to MicroSoft Access .mdb database files.
NitroSecurityNitroEDBGA?ProprietaryHigh-performance.
Thinking Networksnot availablePlanningGPLMultidimensional Storage Engine.
NomuraOpenOLAPBetaLinuxLGPLv1.0 for MySQL 5.0.x, 2006-04-26, stalled since 2006?OLAP cube tool, data warehouse (DWH).
Open QueryOQGRAPHRCLinuxGPLv2+/ProprietaryThe GRAPH engine is a computation engine allowing hierarchies and more complex graph structures to be handled in a relational fashion. In a nutshell, tree structures and friend-of-a-friend style searches can now be done using standard SQL syntax, and results joined onto other tables.
PrimeBasePBXTRelease Candidate (RC)Linux, OS X, WindowsGPLv1.0.11-6 (pre-GA), v1.5.02 (beta), v2.0 (early development release)PrimeBase XT (PBXT) is a pluggable, transactional storage engine for MySQL. It uses a unique "write-once", log-based update strategy and MVCC (multi-version concurrency control) to provide optimal performance over a wide range of tasks.
PrimeBasePBMSAlphaLinux, OS XGPLv1.0-alpha for MySQL 5.1.19The BLOB Streaming daemon for MySQL, the PrimeBase Media Streaming daemon (PBMS), allows you to upload and download BLOB data to and from a MySQL or Drizzle database using HTTP. For this purpose, the PBMS daemon includes a lightweight HTTP server.
3L ToolsQ4MProduction ReadyGPLv0.9.4Q4M (Queue for MySQL) is a message queue that works as a pluggable storage engine of MySQL 5.1, designed to be robust, fast, flexible.
RethinkDBRethinkDBAlphaLinuxFreeware/Proprietaryv0.1MySQL Storage Engine for Solid State Disks (SSD)
RitmarkFSRitmarkFSAlphaLinux, WindowsGPLv0.4.1, 2006-11-21RitmarkFS is a MySQL Data Storage engine that allows one to access and manipulate file-system using SQL queries. RitmarkFS also supports file-system replication and directory change tracking.
IBM (Solid)solidDBGALinux 32-bit, Linux 64-bit, WindowsGPLv5.0.41-0073 2007-06-11In memory database. Purchased by IBM. Turbo-charged version of MySQL database that leverages solidDB Storage Engine to support heavy transaction volumes and large numbers of concurrent users.
InnoBase (Oracle)InnoDBPlugable InnoDB storage engine
KickfireKFDBGAProprietaryColumn store + Compression + SQL-Chip, Applicance with a MySQL pluggable Storage Engine (for data warehouse (DWH)). Costs: USD 32k
Brian AkerMemCacheD SEAlphaGPLMemcache storage engine for MySQL
J. SchlütersPHP SESimplified BSD LicenseMySQL Storage engine using embedded PHP
RRD Storage engine(insider information, unofficial name, not yet available). A work around you can find here: Round-Robin Database Storage Engine (RRD)
ScaleDBScaleDBGAProprietaryA scalable transactional storage engine for OLTP / data warehouse (DWH) (RAC for MySQL!).
Sphinx SearchSphinxSEGALinux, WindowsGPL v20.9.9 (GA), v1.10-betaExternal fulltext search engine accessible from MySQL. Scales pretty well.
SpiderSpiderSEGAGPL v2GA: v1.0, v2.24-devA sharding Storage Engine. Supports XA and partitioning.
TokutekTokuDBGAProprietaryv4.1TokuDB is a MySQL Storage Engine that incorporates Fractal Tree technology. It enhances scalability and performance, increasing per-node performance by 10x-50x. TokuDB is a true software-only Storage Engine plugin, maximizing compatibility with existing MySQL code and applications.
Bearfoot SoftwareVEMySQLDiscontinued?v1.5Velocity Storage Engine: Small Footprint Database-Engine for MySQL.
Kentoku SHIBAVertical Partitioning SE (VPSE)AlphaGPL v2Ancestor of Spider SE?Merges tables for vertical partitioning and joins by primary key.
TangentOrg / Brian AkerWeb Service EngineAlphaGPLDiscontinued?myhttp is a basic web service engine for MySQL. It all you to perform basic HTTP method operations, like PUT, GET, and DELETE from MySQL as though it was a table.
Jan KneschkeWormhole SEGPL v2Scriptable storage engine for MySQL. It allows you to map everything that can be accessed in a table fashion into MySQL. Datatypes, Indexing, ... everything is exposed. Currently it supports Lua as scripting language, but other languages can be added later.
PerconaXtraDBGALinux, WindowsGPL v2v12.5Drop-in replacement for InnoDB with focus on performance and scalability.
Monti Program ABCassandra Storage EngineDev.LinuxGPLThe Apache Cassandra database is for scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware are further features. Cassandra's support for replicating across multiple datacenters, id providing lower latency for your users and can survive regional outages.
ProviderEngineStatePlatformsLicenseReleaseFeatures

Caution: MySQL does NOT provide support related to problems of one of these storage engines.

If you are aware of any storage engine not listed here, please let us know!

See also our list of MySQL and MariaDB Plugins and UDF’s.

MySQL Forks

In the last few months there were some forks of MySQL code: