InnoDB is a high-reliability and high-performance
storage engine for MySQL. Key advantages of
InnoDBtables arrange your data on disk to optimize common queries based on primary keys. Each
InnoDBtable has a primary key index called the clustered index that organizes the data to minimize I/O for primary key lookups.
To maintain data integrity,
FOREIGN KEYreferential-integrity constraints.
You can freely mix
InnoDBtables with tables from other MySQL storage engines, even within the same statement. For example, you can use a join operation to combine data from
MEMORYtables in a single query.
InnoDBhas been designed for CPU efficiency and maximum performance when processing large data volumes.
Table 14.4 InnoDB Storage Engine Features
|Storage limits||64TB||Transactions||Yes||Locking granularity||Row|
|MVCC||Yes||Geospatial data type support||Yes||Geospatial indexing support||Yes[a]|
|B-tree indexes||Yes||T-tree indexes||No||Hash indexes||No[b]|
|Full-text search indexes||Yes[c]||Clustered indexes||Yes||Data caches||Yes|
|Index caches||Yes||Compressed data||Yes[d]||Encrypted data[e]||Yes|
|Cluster database support||No||Replication support[f]||Yes||Foreign key support||Yes|
|Backup / point-in-time recovery[g]||Yes||Query cache support||Yes||Update statistics for data dictionary||Yes|
[a] InnoDB support for geospatial indexing is available in MySQL 5.7.5 and higher.
[b] InnoDB utilizes hash indexes internally for its Adaptive Hash Index feature.
[c] InnoDB support for FULLTEXT indexes is available in MySQL 5.6.4 and higher.
[d] Compressed InnoDB tables require the InnoDB Barracuda file format.
[e] Implemented in the server (via encryption functions), rather than in the storage engine.
[f] Implemented in the server, rather than in the storage engine.
[g] Implemented in the server, rather than in the storage engine.
InnoDB storage engine maintains its own
buffer pool for caching data and indexes in main memory.
InnoDB stores its tables and indexes in a
tablespace, which may consist of several files (or raw disk
partitions). This is different from, for example,
MyISAM tables where each table is stored using
InnoDB tables can be very large
even on operating systems where file size is limited to 2GB.
The Windows Essentials installer makes
MySQL default storage engine on Windows, if the server being
To compare the features of
InnoDB with other
storage engines provided with MySQL, see the Storage
Engine Features table in
Chapter 14, Storage Engines.
At the 2008 MySQL User Conference, Innobase announced availability of an
InnoDBPlugin for MySQL. This plugin for MySQL exploits the “pluggable storage engine” architecture of MySQL, to permit users to replace the “built-in” version of
InnoDBin MySQL 5.1.
As of MySQL 5.1.38, the
InnoDB Pluginis included in MySQL 5.1 releases, in addition to the built-in version of
InnoDBthat has been included in previous releases. MySQL 5.1.42 through 5.1.45 include
InnoDB Plugin1.0.6, which is considered of Release Candidate (RC) quality. MySQL 5.1.46 and up include
InnoDB Plugin1.0.7 or higher, which is considered of General Availability (GA) quality.
Prior to MySQL Cluster NDB 7.1.11, MySQL Cluster was not compatible with the
InnoDB Pluginoffers new features, improved performance and scalability, enhanced reliability and new capabilities for flexibility and ease of use. Among the features of the
InnoDB Pluginare “Fast index creation,” table and index compression, file format management, new
INFORMATION_SCHEMAtables, capacity tuning, multiple background I/O threads, and group commit.
InnoDB Pluginis included in source and binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), and generic Linux RPM packages.
For instructions on replacing the built-in version of
InnoDB Plugin, see Section 126.96.36.199, “Using InnoDB Plugin Instead of the Built-In InnoDB”.
The MySQL Enterprise Backup product lets you back up a running MySQL
MyISAM tables, with minimal disruption to
operations while producing a consistent snapshot of the database.
When MySQL Enterprise Backup is copying
tables, reads and writes to both
MyISAM tables can continue. During the copying of
MyISAM and other non-InnoDB tables, reads (but
not writes) to those tables are permitted. In addition, MySQL
Enterprise Backup can create compressed backup files, and back up
InnoDB tables. In conjunction with the
MySQL binary log, you can perform point-in-time recovery. MySQL
Enterprise Backup is included as part of the MySQL Enterprise
For a more complete description of MySQL Enterprise Backup, see Section 23.2, “MySQL Enterprise Backup Overview”.
InnoDB-related terms and definitions, see MySQL Glossary.
A forum dedicated to the
InnoDBstorage engine is available here: MySQL Forums::InnoDB.
InnoDBis published under the same GNU GPL License Version 2 (of June 1991) as MySQL. For more information on MySQL licensing, see http://www.mysql.com/company/legal/licensing/.