Comparison of MySQL database engines

Last updated

This is a comparison between notable database engines for the MySQL database management system (DBMS). A database engine (or "storage engine") is the underlying software component that a DBMS uses to create, read, update and delete (CRUD) data from a database.

NameVendorLicense Transactional Under active developmentMySQL versionsMariaDB versions [1]
Archive OracleGPLNoYes5.0 - present5.1 - present
Aria MariaDB GPLNoYes5.1 - present
Berkeley DB Oracle AGPLv3 YesNo ? - 5.0
BLACKHOLE OracleGPLNoYes5.0 - present5.1 - present
CONNECT MariaDB GPLNoYes10.0 - present
CSV OracleGPLNoYes5.0 - present5.1 - present
Falcon OracleGPLYesNo ?
Federated OracleGPL ?No5.0 - present ?
FederatedX MariaDB GPLYesNo ? - present
ColumnStore (formerly InfiniDB) CalpontGPLYesYes10.5.4 - present
InnoDB OracleGPLYesYes3.23 - present5.1 - present [2]
MEMORY OracleGPLNoYes3.23 - present5.1 - present
MroongaGroonga ProjectGPLNoYes10.0 - present
MyISAM OracleGPLNoNo3.23 - present5.1 - present
MyRocks FacebookGPLv2YesYes10.2 - present
NDB OracleGPLv2YesYes ?
OQGRAPH OracleGPLv2NoNo5.2 - present
S3 MariaDB GPLNoYes10.5 - present
SEQUENCEMariaDBGPLNoYes10.0 - present
Sphinx Sphinx Technologies Inc.GPLNoNo5.2 - present
SPIDER Kentoku ShibaGPLYesYes10.0 - present
TempTable OracleGPLNoYes8.0 - present
TokuDB PerconaModified GPLYesNo5.5 - 10.6 [3]
XtraDB PerconaGPLYesYes5.1 - 10.1 [2]

Related Research Articles

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

A database engine is the underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database. Most database management systems include their own application programming interface (API) that allows the user to interact with their underlying engine without going through the user interface of the DBMS.

Indexed Sequential Access Method (ISAM) is a method for creating, maintaining, and manipulating computer files of data so that records can be retrieved sequentially or randomly by one or more keys. Indexes of key fields are maintained to achieve fast retrieval of required file records in indexed files. IBM originally developed ISAM for mainframe computers, but implementations are available for most computer systems.

The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

InnoDB is a storage engine for the database management system MySQL and MariaDB. Since the release of MySQL 5.5.5 in 2010, it replaced MyISAM as MySQL's default table type. It provides the standard ACID-compliant transaction features, along with foreign key support. It is included as standard in most binaries distributed by MySQL AB, the exception being some OEM versions.

MyISAM was the default storage engine for the MySQL relational database management system versions prior to 5.5 released in December 2009. It is based on the older ISAM code, but it has many useful extensions.

A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.

In computing, a DBM is a library and file format providing fast, single-keyed access to data. A key-value database from the original Unix, dbm is an early example of a NoSQL system.

Falcon is a discontinued transactional storage engine being developed for the MySQL relational database management system. Development was stopped after Oracle purchased MySQL. It was based on the Netfrastructure database engine. Falcon was designed to take advantage of Sun's ZFS file system.

The SQL/MED extension to the SQL standard is defined by ISO/IEC 9075-9:2008. SQL/MED provides extensions to SQL that define foreign-data wrappers and datalink types to allow SQL to manage external data. External data is data that is accessible to, but not managed by, an SQL-based DBMS. This standard can be used in the development of federated database systems.

Sphinx is a fulltext search engine that provides text search functionality to client applications.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

Aria is a storage engine for the MariaDB and MySQL relational database management systems. Its goal is to make a crash-safe alternative to MyISAM. It is not transactional.

<span class="mw-page-title-main">MariaDB</span> Database management system

MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle Corporation in 2009, but in 2024 MariaDB was itself bought by the K1 private equity group, which appointed a new CEO.

TokuDB is an open-source, high-performance storage engine for MySQL and MariaDB. It achieves this by using a fractal tree index. It is scalable, ACID and MVCC compliant, provides indexing-based query improvements, offers online schema modifications, and reduces replication lag for both hard disk drives and flash memory.

In relational databases a virtual column is a table column whose value(s) is automatically computed using other columns values, or another deterministic expression. Virtual columns are defined of SQL:2003 as Generated Column, and are only implemented by some DBMSs, like MariaDB, SQL Server, Oracle, PostgreSQL, SQLite and Firebird.

The following outline is provided as an overview of and topical guide to MySQL:

<span class="mw-page-title-main">RocksDB</span> Embedded key-value database

RocksDB is a high performance embedded database for key-value data. It is a fork of Google's LevelDB optimized to exploit multi-core processors (CPUs), and make efficient use of fast storage, such as solid-state drives (SSD), for input/output (I/O) bound workloads. It is based on a log-structured merge-tree data structure. It is written in C++ and provides official language bindings for C++, C, and Java. Many third-party language bindings exist. RocksDB is free and open-source software, released originally under a BSD 3-clause license. However, in July 2017 the project was migrated to a dual license of both Apache 2.0 and GPLv2 license. This change helped its adoption in Apache Software Foundation's projects after blacklist of the previous BSD+Patents license clause.

<span class="mw-page-title-main">MyRocks</span>

MyRocks is open-source software developed at Facebook in order to use MySQL features with RocksDB implementations. It is based on Oracle MySQL 5.6.

References

  1. "Storage Engines". MariaDB KnowledgeBase. Retrieved 2024-01-25.
  2. 1 2 "InnoDB Versions". MariaDB KnowledgeBase. Retrieved 2024-01-25.
  3. "TokuDB". MariaDB KnowledgeBase. Retrieved 2024-01-25.