Storage Engine

When using Oracle Database or Microsoft SQL Server, a single set of code is responsible for low-level database operations, such as retrieving a particular row from a table based on primary key value.

The MySQL server, however, has been designed so that multiple storage engines may be utilized to provide low-level database functionality, including resource locking and transaction management.

As of version 6.0, MySQL includes the following storage engines:

Storage Engines

Storage EngineDescription
MyISAMA nontransactional engine employing table locking
MEMORYA nontransactional engine used for in-memory tables
BDBA transactional engine employing page-level locking
InnoDBA transactional engine employing row-level locking
MergeA specialty engine used to make multiple identical MyISAM tables appear as a single table (a.k.a. table partitioning)
MariaA MyISAM replacement included in version 6.0.6 that adds full recovery capabilities
FalconA new (as of 6.0.4) high-performance transactional engine employing row-level locking
ArchiveA specialty engine used to store large amounts of unindexed data, mainly for ar- chival purposes

MySQL supports table-by-table storage engine choices.

For any tables that might take part in transactions, you should choose the InnoDB or Falcon storage engine, which uses row-level locking and versioning to provide the highest level of concurrency across the different storage engines.

Show all available engines:

SHOW ENGINES;

To see which engine is used for a table,

SHOW TABLE STATUS LIKE 'transaction';

Set Storage Engine for A Table

ALTER TABLE transaction ENGINE = INNODB;