14.3. The InnoDB Storage Engine

14.3.1. InnoDB as the Default MySQL Storage Engine
14.3.2. Configuring InnoDB
14.3.3. Using Per-Table Tablespaces
14.3.4. InnoDB Startup Options and System Variables
14.3.5. Creating and Using InnoDB Tables
14.3.6. Adding, Removing, or Resizing InnoDB Data and Log Files
14.3.7. Backing Up and Recovering an InnoDB Database
14.3.8. Moving or Copying InnoDB Tables to Another Machine
14.3.9. The InnoDB Transaction Model and Locking
14.3.10. InnoDB Multi-Versioning
14.3.11. InnoDB Table and Index Structures
14.3.12. InnoDB Disk I/O and File Space Management
14.3.13. InnoDB Error Handling
14.3.14. InnoDB Performance Tuning and Troubleshooting
14.3.15. Limits on InnoDB Tables

InnoDB is a high-reliability and high-performance storage engine for MySQL. Starting with MySQL 5.5, it is the default MySQL storage engine. Key advantages of InnoDB include:

To determine whether your server supports InnoDB use the SHOW ENGINES statement. See Section 13.7.5.17, “SHOW ENGINES Syntax”.

Table 14.2. InnoDB Storage Engine Features

Storage limits64TBTransactionsYesLocking granularityRow
MVCCYesGeospatial data type supportYesGeospatial indexing supportNo
B-tree indexesYesT-tree indexesNoHash indexesNo[a]
Full-text search indexesYes[b]Clustered indexesYesData cachesYes
Index cachesYesCompressed dataYes[c]Encrypted data[d]Yes
Cluster database supportNoReplication support[e]YesForeign key supportYes
Backup / point-in-time recovery[f]YesQuery cache supportYesUpdate statistics for data dictionaryYes

[a] InnoDB utilizes hash indexes internally for its Adaptive Hash Index feature.

[b] InnoDB support for FULLTEXT indexes is available in MySQL 5.6.4 and higher.

[c] Compressed InnoDB tables require the InnoDB Barracuda file format.

[d] Implemented in the server (via encryption functions), rather than in the storage engine.

[e] Implemented in the server, rather than in the storage engine.

[f] Implemented in the server, rather than in the storage engine.


InnoDB has been designed for maximum performance when processing large data volumes. Its CPU efficiency is probably not matched by any other disk-based relational database engine.

The 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 separate files. InnoDB tables can be very large even on operating systems where file size is limited to 2GB.

InnoDB is 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/.

Additional Resources