Summary: In this tutorial, you will learn about the MySQL InnoDB storage engine, its features, and benefits.
Introduction to MySQL InnoDB storage engine
InnoDB is a general-purpose and default storage engine in MySQL that balances reliability and performance.
When you create a table using the CREATE TABLE statement without the ENGINE
clause, MySQL creates a table with the storage engine InnoDB unless you have a different default storage engine configuration:
CREATE TABLE sample_table(
...
);
Code language: SQL (Structured Query Language) (sql)
If you want to create an InnoDB table explicitly, you can set the ENGINE
clause to INNODB
as follows:
CREATE TABLE sample_table(
...
) ENGINE=INNODB;
Code language: SQL (Structured Query Language) (sql)
Please note that MySQL has used InnoDB as the storage engine since version 5.5. Before that, it used MyISAM as the default storage engine.
To convert a table from one storage engine to InnoDB, you use the ALTER TABLE
statement:
ALTER TABLE sample_table ENGINE = InnoDB;
Code language: SQL (Structured Query Language) (sql)
The key features of MySQL InnoDB storage engine
Here are some key features of InnoDB storage engines.
1) Transaction support
InnoDB fully supports transactions that allow you to group multiple SQL statements into a single transaction. It allows you to commit or roll back a transaction as a unit, ensuring data consistency and reliability.
2) Row-Level locking
InnoDB uses row-level locking that allows multiple transactions to modify different rows within the same table simultaneously without blocking each other.
The row-level locking enhances the concurrency and performance of the database.
3) Foreign key support
InnoDB supports foreign keys that allow you to create relationships between tables and enforce referential integrity in the database.
The foreign key support is crucial for maintaining data consistency.
4) Automatic crash recovery
InnoDB storage engine provides an automatic crash recovery mechanism that helps the database recover from system crashes or unexpected shutdowns.
This feature ensures the database is in a consistent state without the need for manual intervention.
5) MVCC (Multi-Version Concurrency Control)
The MVCC feature manages concurrent access to data so that readers don’t block writers and vice versa. Due to the MVCC feature, InnoDB tables allow for high levels of concurrency.
6) Full-Text Search
InnoDB fully supports full-text search that allows you to perform complex text-based searches on data stored in the tables.
Summary
- InnoDB storage engine balances high reliability and performance.
- InnoDB is the default storage engine of MySQL 5.5 or later.