Alternative Storage Engines
Table of Contents
- 15.1 Setting the Storage Engine 15.2 The MyISAM Storage Engine 15.3 The MEMORY Storage Engine 15.4 The CSV Storage Engine 15.5 The ARCHIVE Storage Engine 15.6 The BLACKHOLE Storage Engine 15.7 The MERGE Storage Engine 15.8 The FEDERATED Storage Engine 15.9 The EXAMPLE Storage Engine 15.10 Other Storage Engines 15.11 Overview of MySQL Storage Engine Architecture
Storage engines are MySQL components that handle the SQL operations for different table types. InnoDB
is the default and most general-purpose storage engine, and Oracle recommends using it for tables except for specialized use cases. (The CREATE TABLE
statement in MySQL 5.7 creates InnoDB
tables by default.)
MySQL Server uses a pluggable storage engine architecture that enables storage engines to be loaded into and unloaded from a running MySQL server.
To determine which storage engines your server supports, use the SHOW ENGINES
statement. The value in the Support
column indicates whether an engine can be used. A value of YES
, NO
, or DEFAULT
indicates that an engine is available, not available, or available and currently set as the default storage engine.
mysql> SHOW ENGINES\G
*************************** 1. row *************************** Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance Schema Transactions: NO XA: NO Savepoints: NO *************************** 2. row *************************** Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES *************************** 3. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO *************************** 4. row *************************** Engine: BLACKHOLE Support: YES Comment: /dev/null storage engine (anything you write to it disappears) Transactions: NO XA