14.1 Introduction to InnoDB
InnoDB is a general-purpose storage engine that balances high reliability and high performance. In MySQL 5.7,
InnoDB is the default MySQL storage engine. Unless you have configured a different default storage engine, issuing a
CREATE TABLE statement without an
ENGINE= clause creates an
Its DML operations follow the ACID model, with transactions featuring commit, rollback, and crash-recovery capabilities to protect user data. See Section 14.2, “InnoDB and the ACID Model” for more information.
Row-level locking and Oracle-style consistent reads increase multi-user concurrency and performance. See Section 14.7, “InnoDB Locking and Transaction Model” for more information.
InnoDBtables arrange your data on disk to optimize 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. See Section 18.104.22.168, “Clustered and Secondary Indexes” for more information.
To maintain data integrity,
FOREIGN KEYconstraints. With foreign keys, inserts, updates, and deletes are checked to ensure they do not result in inconsistencies across different tables. See Section 22.214.171.124, “FOREIGN KEY Constraints” for more information.
Table 14.1 InnoDB Storage Engine Features
|Backup/point-in-time recovery (Implemented in the server, rather than in the storage engine.)||Yes|
|Cluster database support||No|
|Encrypted data||Yes (Implemented in the server via encryption functions; In MySQL 5.7 and later, data-at-rest tablespace encryption is supported.)|
|Foreign key support||Yes|
|Full-text search indexes||Yes (InnoDB support for FULLTEXT indexes is available in MySQL 5.6 and later.)|
|Geospatial data type support||Yes|
|Geospatial indexing support||Yes (InnoDB support for geospatial indexing is available in MySQL 5.7 and later.)|
|Hash indexes||No (InnoDB utilizes hash indexes internally for its Adaptive Hash Index feature.)|
|Replication support (Implemented in the server, rather than in the storage engine.)||Yes|
|Update statistics for data dictionary||Yes|
To compare the features of
InnoDB with other storage engines provided with MySQL, see the Storage Engine Features table in Chapter 15, Alternative Storage Engines.
For information about
InnoDB enhancements and new features, refer to:
InnoDB-related terms and definitions, see the MySQL Glossary.
For a forum dedicated to the
InnoDBstorage engine, see 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/ .