You are here
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 | +------------+----------+-------------------------------------------------------+
|BerkeleyDB||Discontinued Storage Engine.|
|Falcon||Its future is uncertain at the moment.|
|FEDERATED||Currently disabled by default (no GA quality).|
|ISAM||Discontinued 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_MYISAM||Should 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:
|Antony T Curtis||Amira SE||Discontinued?||GPL v2||Transactional Storage Engine MySQL based upon the NuSphere Gemini Storage Engine.|
|Monty Program AB||Aria SE||GA||Linux, Solaris, Windows, etc.||GPL v2||Crash Safe MySQL Storage Engine. Successor of MyISAM.|
|Alex Esterkin||Ariella SE||pre-Alpha||GPL v2||Discontinued?||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.|
|Amazon||AWS S3||Beta||v0.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 GmbH||BlackRay||GPL v2||v0.10||The 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 Maesaka||BlitzDB SE||GPL v2||Highly efficient general purpose use DB. Non-transactional competition to MyISAM and MEMORY engines. Developed with Drizzle.|
|OblakSoft||ClouSE||Beta||Linux||Proprietary||v1.0||ClouSE 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.|
|DDE||Distributed Data Engine||Alpha||GPL||v0.2||Revision 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.
|InfoBright||BrightHouse||GA||Linux and Windows||Proprietary (IEE) and OSS (ICE)?||v3.5||DWH data compression.|
|FederatedX||FederatedX||Beta||GPL||v0.4||FederatedX 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|
|IBM||IBMDB2I||GA||AS400, i5/OS||Proprietary||DB2 interface for DB2 on i5/OS (AS400)|
|Calpont||InfiniDB||GA||Linux||GPL v2/Commercial||v1.0.3, v1.1a||InfiniDB 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.|
|mdbtools||mdbtools||pre-Alpha||GPL||A pluggable storage engine that allows read-only access to MicroSoft Access .mdb database files.|
|Thinking Networks||not available||Planning||GPL||Multidimensional Storage Engine.|
|Nomura||OpenOLAP||Beta||Linux||LGPL||v1.0 for MySQL 5.0.x, 2006-04-26, stalled since 2006?||OLAP cube tool (DWH).|
|Open Query||OQGRAPH||RC||Linux||GPLv2+/Proprietary||The 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.|
|PrimeBase||PBXT||Release Candidate (RC)||Linux, OS X, Windows||GPL||v1.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.|
|PrimeBase||PBMS||Alpha||Linux, OS X||GPL||v1.0-alpha for MySQL 5.1.19||The 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 Tools||Q4M||Production Ready||GPL||v0.9.4||Q4M (Queue for MySQL) is a message queue that works as a pluggable storage engine of MySQL 5.1, designed to be robust, fast, flexible.|
|RethinkDB||RethinkDB||Alpha||Linux||Freeware/Proprietary||v0.1||MySQL Storage Engine for Solid State Disks (SSD)|
|RitmarkFS||RitmarkFS||Alpha||Linux, Windows||GPL||v0.4.1, 2006-11-21||RitmarkFS 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)||solidDB||GA||Linux 32-bit, Linux 64-bit, Windows||GPL||v5.0.41-0073 2007-06-11||In 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)||InnoDB||Plugable InnoDB storage engine|
|Kickfire||KFDB||GA||Proprietary||Column store + Compression + SQL-Chip, Applicance with a MySQL pluggable Storage Engine (for DWH). Costs: USD 32k|
|Brian Aker||MemCacheD SE||Alpha||GPL||Memcache storage engine for MySQL|
|J. Schlüters||PHP SE||Simplified BSD License||MySQL 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)|
|ScaleDB||ScaleDB||GA||Proprietary||A scalable transactional storage engine for OLTP / DWH (RAC for MySQL!).|
|Sphinx Search||SphinxSE||GA||Linux, Windows||GPL v2||0.9.9 (GA), v1.10-beta||External fulltext search engine accessible from MySQL. Scales pretty well.|
|Spider||SpiderSE||GA||GPL v2||GA: v1.0, v2.24-dev||A sharding Storage Engine. Supports XA and partitioning.|
|Tokutek||TokuDB||GA||Proprietary||v4.1||TokuDB 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 plug-in, maximizing compatibility with existing MySQL code and applications.|
|Bearfoot Software||VEMySQL||Discontinued?||v1.5||Velocity Storage Engine: Small Footprint Database-Engine for MySQL.|
|Kentoku SHIBA||Vertical Partitioning SE (VPSE)||Alpha||GPL v2||Ancestor of Spider SE?||Merges tables for vertical partitioning and joins by primary key.|
|TangentOrg / Brian Aker||Web Service Engine||Alpha||GPL||Discontinued?||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 Kneschke||Wormhole SE||GPL v2||Scriptable 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.|
|Percona||XtraDB||GA||Linux, Windows||GPL v2||v12.5||Drop-in replacement for InnoDB with focus on performance and scalability.|
|Monti Program AB||Cassandra Storage Engine||Dev.||Linux||GPL||The 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.|
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.
In the last few months there were some forks of MySQL code: