InnoDB is a general-purpose storage engine that balances high reliability and high performance. In MySQL 8.0, 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 InnoDB table.
Its DML operations follow the ACID model, with transactions featuring commit, rollback, and crash-recovery capabilities to protect user data. See Section 15.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 15.7, “InnoDB Locking and Transaction Model” for more information.
InnoDB tables arrange your data on disk to optimize queries based on primary keys. Each InnoDB table 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, InnoDB supports FOREIGN KEY constraints. 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, “InnoDB and FOREIGN KEY Constraints” for more information.
Table 15.1 InnoDB Storage Engine Features
To compare the features of InnoDB with other storage engines provided with MySQL, see the Storage Engine Features table in Chapter 16, Alternative Storage Engines.
For information about InnoDB enhancements and new features, refer to:
The InnoDB enhancements list in Section 1.4, “What Is New in MySQL 8.0”.
The Release Notes.
For InnoDB-related terms and definitions, see the MySQL Glossary.
For a forum dedicated to the InnoDB storage engine, see MySQL Forums::InnoDB.
InnoDB is published under the same GNU GPL License Version 2 (of June 1991) as MySQL. For more information on MySQL licensing, seehttp://www.mysql.com/company/legal/licensing/.